# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
336744 | 2020-12-16T16:47:35 Z | nandonathaniel | PIN (CEOI10_pin) | C++14 | 664 ms | 14780 KB |
#include<bits/stdc++.h> using namespace std; map<string,int> mp[16]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); long long ans=0; string s; int n,d; cin >> n >> d; for(int it=1;it<=n;it++){ cin >> s; for(int mask=0;mask<(1<<4);mask++){ if(__builtin_popcount(mask)!=d)continue; string t=""; vector<int> v; bool ya[4]; memset(ya,false,sizeof(ya)); for(int i=0;i<4;i++){ if((1<<i) & mask)v.push_back(i); else ya[i]=true; } for(int i=0;i<(1<<v.size());i++){ for(int j=0;j<v.size();j++){ if((1<<j) & i)ya[v[j]]=true; } int msk=0; string k=""; for(int j=0;j<4;j++){ if(ya[j]){ msk+=(1<<j); k+=s[j]; } } if(__builtin_popcount(i)&1)ans-=mp[msk][k]; else ans+=mp[msk][k]; for(int j=0;j<v.size();j++){ if((1<<j) & i)ya[v[j]]=false; } } } for(int mask=0;mask<(1<<4);mask++){ string t=""; for(int i=0;i<4;i++){ if((1<<i) & mask)t+=s[i]; } mp[mask][t]++; } } cout << ans << '\n'; return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 9 ms | 1004 KB | Output is correct |
2 | Correct | 14 ms | 1024 KB | Output is correct |
3 | Correct | 8 ms | 876 KB | Output is correct |
4 | Correct | 110 ms | 3328 KB | Output is correct |
5 | Correct | 140 ms | 3692 KB | Output is correct |
6 | Correct | 230 ms | 3780 KB | Output is correct |
7 | Correct | 190 ms | 3436 KB | Output is correct |
8 | Correct | 158 ms | 3948 KB | Output is correct |
9 | Correct | 268 ms | 5356 KB | Output is correct |
10 | Correct | 475 ms | 5644 KB | Output is correct |
11 | Correct | 250 ms | 3820 KB | Output is correct |
12 | Correct | 492 ms | 5356 KB | Output is correct |
13 | Correct | 317 ms | 4044 KB | Output is correct |
14 | Correct | 177 ms | 3820 KB | Output is correct |
15 | Correct | 323 ms | 5600 KB | Output is correct |
16 | Correct | 276 ms | 11116 KB | Output is correct |
17 | Correct | 664 ms | 14668 KB | Output is correct |
18 | Correct | 377 ms | 12140 KB | Output is correct |
19 | Correct | 448 ms | 13548 KB | Output is correct |
20 | Correct | 516 ms | 14780 KB | Output is correct |