# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
135674 | onjo0127 | PIN (CEOI10_pin) | C++11 | 479 ms | 12092 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int N, D;
unordered_map<string, int> mp;
string S[50009];
string make(string S, int msk) {
for(int i=0; i<4; i++) if((msk >> i) & 1) S[i] = '_';
return S;
}
long long solve1() {
long long ans = 0;
for(int i=1; i<=N; i++) {
ans += mp[make(S[i], 1)];
ans += mp[make(S[i], 2)];
ans += mp[make(S[i], 4)];
ans += mp[make(S[i], 8)];
}
return ans;
}
long long solve2() {
long long ans = 0;
for(int i=1; i<=N; i++) {
ans += mp[make(S[i], 3)];
ans += mp[make(S[i], 5)];
ans += mp[make(S[i], 9)];
ans += mp[make(S[i], 6)];
ans += mp[make(S[i], 10)];
ans += mp[make(S[i], 12)];
ans -= 3*mp[make(S[i], 1)];
ans -= 3*mp[make(S[i], 2)];
ans -= 3*mp[make(S[i], 4)];
ans -= 3*mp[make(S[i], 8)];
}
return ans;
}
long long solve3() {
long long ans = 0;
for(int i=1; i<=N; i++) {
ans += mp[make(S[i], 14)];
ans += mp[make(S[i], 13)];
ans += mp[make(S[i], 11)];
ans += mp[make(S[i], 7)];
ans -= 2*mp[make(S[i], 3)];
ans -= 2*mp[make(S[i], 5)];
ans -= 2*mp[make(S[i], 9)];
ans -= 2*mp[make(S[i], 6)];
ans -= 2*mp[make(S[i], 10)];
ans -= 2*mp[make(S[i], 12)];
ans += 3*mp[make(S[i], 1)];
ans += 3*mp[make(S[i], 2)];
ans += 3*mp[make(S[i], 4)];
ans += 3*mp[make(S[i], 8)];
}
return ans;
}
int main() {
cin.tie(0); cout.tie(0);
ios::sync_with_stdio(0);
cin >> N >> D;
for(int i=1; i<=N; i++) {
cin >> S[i];
for(int j=1; j<16; j++) ++mp[make(S[i], j)];
}
for(auto& it: mp) --it.second;
long long ans = 0;
if(D == 1) cout << solve1() / 2;
if(D == 2) cout << solve2() / 2;
if(D == 3) cout << solve3() / 2;
if(D == 4) cout << (1LL*N*(N-1) - solve1() - solve2() - solve3()) / 2;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |