Submission #208414

#TimeUsernameProblemLanguageResultExecution timeMemory
208414AtalasionPIN (CEOI10_pin)C++14
70 / 100
539 ms20856 KiB
//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 i = 1; i <= n; i++){ for (int mask = 1; mask < (1 << 4); mask++){ 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 (stderr)

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 timeMemoryGrader output
Fetching results...