답안 #135370

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
135370 2019-07-24T04:25:59 Z 이온조(#3249) PIN (CEOI10_pin) C++14
70 / 100
705 ms 12272 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;
	if(D == 1) {
		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)];
		}
		cout << ans / 2;
	}
	if(D == 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)];

			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)];
		}
		cout << ans / 2;
	}
	if(D == 3) {
		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)];
		}
		cout << ans / 2;
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 2424 KB Output is correct
2 Correct 14 ms 2516 KB Output is correct
3 Incorrect 9 ms 2296 KB Output isn't correct
4 Correct 120 ms 3420 KB Output is correct
5 Correct 144 ms 3320 KB Output is correct
6 Correct 181 ms 3444 KB Output is correct
7 Correct 160 ms 3504 KB Output is correct
8 Correct 160 ms 3440 KB Output is correct
9 Correct 253 ms 3456 KB Output is correct
10 Correct 358 ms 3452 KB Output is correct
11 Correct 201 ms 3448 KB Output is correct
12 Correct 388 ms 3444 KB Output is correct
13 Correct 244 ms 3440 KB Output is correct
14 Incorrect 126 ms 3320 KB Output isn't correct
15 Incorrect 198 ms 3420 KB Output isn't correct
16 Correct 378 ms 10108 KB Output is correct
17 Correct 705 ms 12256 KB Output is correct
18 Incorrect 274 ms 10732 KB Output isn't correct
19 Incorrect 324 ms 11684 KB Output isn't correct
20 Incorrect 363 ms 12272 KB Output isn't correct