제출 #1322909

#제출 시각아이디문제언어결과실행 시간메모리
1322909yessimkhanPIN (CEOI10_pin)C++20
35 / 100
1100 ms128512 KiB
#include <bits/stdc++.h> // solved by bekagg #define ll long long #define ent '\n' #define pb push_back #define all(x) x.begin(),x.end() #define PRaim_bek_abi ios_base::sync_with_stdio(0);cin.tie(0); using namespace std; const int N = 1e5+5; const int MOD = 1e9+7; int n , d; string g[N]; ll ans; unordered_map<string , int>mp; vector<char>v; void arkanefury228(){ cin >> n >> d; if (n <= 2000){ for (int i = 1; i <= n; i++){ cin >> g[i]; for (int j = 1; j < i; j++){ int sum = 0; for (int k = 0; k < 4; k++){ if (g[i][k] != g[j][k]) sum++; } if (sum == d) ans++; } } cout << ans; return; } for (int i = 0; i <= 9; i++){ v.pb(char(i + '0')); } for (int i = 0; i < 26; i++){ v.pb(char(i + 'a')); } if (d == 0){ for (int i = 1; i <= n; i++){ string s; cin >> s; ans += mp[s]; } cout << ans; return; } if (d == 4){ for (int i = 1; i <= n; i++){ string s; cin >> s; } cout << n * (n - 1) / 2; return; } if (d == 1){ for (int i = 1; i <= n; i++){ string s; cin >> s; for (int j = 0; j < v.size(); j++){ string g = s; g[0] = v[j]; ans += mp[g]; g[0] = s[0]; g[1] = v[j]; ans += mp[g]; g[1] = s[1]; g[2] = v[j]; ans += mp[g]; g[2] = s[2]; g[3] = v[j]; ans += mp[g]; g[3] = s[3]; } mp[s]++; } cout << ans; return; } if (d == 2){ for (int i = 1; i <= n; i++){ string s; cin >> s; for (int j = 0; j < v.size(); j++){ for (int k = 0; k < v.size(); k++){ string g = s; g[0] = v[j]; g[1] = v[k]; ans += mp[g]; g[1] = s[1]; g[2] = v[k]; ans += mp[g]; g[2] = s[2]; g[3] = v[k]; ans += mp[g]; g[3] = s[3]; g[0] = s[0]; g[1] = v[j]; g[2] = v[k]; ans += mp[g]; g[2] = s[2]; g[3] = v[k]; ans += mp[g]; g[3] = s[3]; g[1] = s[1]; g[2] = v[j]; g[3] = v[k]; ans += mp[g]; } } mp[s]++; } cout << ans; return; } } signed main(){ PRaim_bek_abi int t=1; //cin>>t; for (int respagold = 1; respagold <= t; respagold++) arkanefury228(); }
#Verdict Execution timeMemoryGrader output
Fetching results...