Submission #135356

# Submission time Handle Problem Language Result Execution time Memory
135356 2019-07-24T04:15:36 Z 이온조(#3249) PIN (CEOI10_pin) C++14
30 / 100
637 ms 12384 KB
#include <bits/stdc++.h>
using namespace std;

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;
}

int main() {
	cin.tie(0); cout.tie(0);
	ios::sync_with_stdio(0);

	int N, D; 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;
	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)];
	}
	if(D == 1) return !printf("%lld", ans >> 1);
	ans *= 2;
	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)];
	}
	printf("%lld", -ans >> 1);
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 13 ms 2424 KB Output is correct
2 Incorrect 14 ms 2424 KB Output isn't correct
3 Incorrect 11 ms 2296 KB Output isn't correct
4 Correct 111 ms 3320 KB Output is correct
5 Correct 141 ms 3420 KB Output is correct
6 Incorrect 178 ms 3448 KB Output isn't correct
7 Incorrect 143 ms 3348 KB Output isn't correct
8 Correct 152 ms 3352 KB Output is correct
9 Correct 244 ms 3320 KB Output is correct
10 Incorrect 361 ms 3352 KB Output isn't correct
11 Incorrect 188 ms 3352 KB Output isn't correct
12 Incorrect 327 ms 3448 KB Output isn't correct
13 Incorrect 212 ms 3356 KB Output isn't correct
14 Incorrect 192 ms 3320 KB Output isn't correct
15 Incorrect 346 ms 3452 KB Output isn't correct
16 Correct 304 ms 10048 KB Output is correct
17 Incorrect 637 ms 12272 KB Output isn't correct
18 Incorrect 430 ms 10744 KB Output isn't correct
19 Incorrect 532 ms 11740 KB Output isn't correct
20 Incorrect 597 ms 12384 KB Output isn't correct