Submission #208415

# Submission time Handle Problem Language Result Execution time Memory
208415 2020-03-11T07:37:54 Z Atalasion PIN (CEOI10_pin) C++14
70 / 100
400 ms 20936 KB
//khodaya khodet komak kon
#include <bits/stdc++.h>

#define F first
#define S second
#define pb push_back
#define all(x) x.begin(), x.end()
#pragma GCC optimise ("ofast")
#pragma GCC optimise("unroll-loops")
#define int long long

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

const int N = 200000 + 10;
const ll MOD = 1000000000 + 7;
const ll INF = 1000000000000000000;
const ll LOG = 25;

int n, d, ted[5];
map<string, int> mp;
string s[N];

ll nCr(ll x, ll y){
	ll res = 1;
	for (int i = 1; i <= x; i++){
		res = res * i;
	}
	for (int i = 1; i <= y; i++) res /= i;
	for (int i = 1; i <= x - y; i++) res /= i;
	return res;
}

int32_t main(){
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> d;
	d = 4 - d;
	for (int i = 1; i <= n; i++){
		cin >> s[i];
	}	
	for (int mask = 1; mask < (1 << 4); mask++){
		for (int i = 1; i <= n; i++){
			string res = "";
			int cnt = 0;
			for (int j = 0; j < 4; j++){
				if (mask & (1 << j)) res += s[i][j], cnt++;
				else res += "?";
			}
		//	cout << res << '\n';
			ted[cnt] += mp[res];
			mp[res] ++;
		}
	}
	//cout << ted[0] << ' ' << ted[1] < 
	for (int i = 3; i >= 0; i--){
		for (int j = i + 1; j <= 3; j++){
			ted[i] -= ted[j] *  nCr(j, i);
		}
	}

	cout << ted[d];








	return 0;
}

Compilation message

pin.cpp:8:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise ("ofast")
 
pin.cpp:9:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise("unroll-loops")
# Verdict Execution time Memory Grader output
1 Correct 18 ms 7288 KB Output is correct
2 Correct 17 ms 7288 KB Output is correct
3 Incorrect 15 ms 7160 KB Output isn't correct
4 Correct 128 ms 9592 KB Output is correct
5 Correct 148 ms 9976 KB Output is correct
6 Correct 148 ms 9976 KB Output is correct
7 Correct 124 ms 9592 KB Output is correct
8 Correct 169 ms 10208 KB Output is correct
9 Correct 261 ms 11640 KB Output is correct
10 Correct 283 ms 11896 KB Output is correct
11 Correct 159 ms 10232 KB Output is correct
12 Correct 278 ms 11768 KB Output is correct
13 Correct 174 ms 10360 KB Output is correct
14 Incorrect 163 ms 10104 KB Output isn't correct
15 Incorrect 271 ms 11768 KB Output isn't correct
16 Correct 257 ms 17400 KB Output is correct
17 Correct 391 ms 20856 KB Output is correct
18 Incorrect 296 ms 18424 KB Output isn't correct
19 Incorrect 346 ms 19704 KB Output isn't correct
20 Incorrect 400 ms 20936 KB Output isn't correct