Submission #320200

# Submission time Handle Problem Language Result Execution time Memory
320200 2020-11-07T22:53:15 Z Karen124 PIN (CEOI10_pin) C++14
60 / 100
93 ms 31592 KB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll N = 5e4 + 5;
const ll M = 36 + 5;
const ll K = 16 + 5; 
const ll O = 10;
int n, d, z[O];
ll ans[O], ansp[O];
int cn[K][M][M][M][M];
unordered_map <char, short int> f;
string a[N];
int main (){
    f['0'] = 0; f['1'] = 1; f['2'] = 2; f['3'] = 3; f['4'] = 4; f['5'] = 5; f['6'] = 6; f['7'] = 7;
    f['8'] = 8; f['9'] = 9; f['a'] = 10; f['b'] = 11; f['c'] = 12; f['d'] = 13; f['e'] = 14; f['f'] = 15;
    f['g'] = 16; f['h'] = 17; f['i'] = 18; f['j'] = 19; f['k'] = 20; f['l'] = 21; f['m'] = 22; f['n'] = 23;
    f['o'] = 24; f['p'] = 25; f['q'] = 26; f['r'] = 27; f['s'] = 28; f['t'] = 29; f['u'] = 30; f['v'] = 31;
    f['w'] = 32; f['x'] = 33; f['y'] = 34; f['z'] = 35; 
    cin >> n >> d;
    for (int i = 0; i < n; i++){
        cin >> a[i];
        fill(ansp, ansp + O, 0);
        for (int msk = 0; msk < 16; msk++){
            fill(z, z + O, 0);
            for (int j = 0; j < 4; j++){
                if ((msk >> j) & 1){
                    z[j] = f[a[i][j]];
                }
            }
            ansp[__builtin_popcount(msk)] += cn[msk][z[0]][z[1]][z[2]][z[3]]; 
            cn[msk][z[0]][z[1]][z[2]][z[3]] ++;
        }
        ans[4] += ansp[4];
        ans[3] += ansp[3] - ansp[4];
        ans[2] += ansp[2] - ansp[3] + ansp[4];
        ans[1] += ansp[1] - ansp[2] + ansp[3] - ansp[4];
        ans[0] += ansp[0] - ansp[1] + ansp[2] - ansp[3] + ansp[4];
    }
    cout << ans[4 - d] << '\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7788 KB Output is correct
2 Incorrect 8 ms 7788 KB Output isn't correct
3 Correct 7 ms 7532 KB Output is correct
4 Correct 27 ms 8044 KB Output is correct
5 Correct 33 ms 8044 KB Output is correct
6 Incorrect 31 ms 8044 KB Output isn't correct
7 Incorrect 27 ms 8044 KB Output isn't correct
8 Correct 36 ms 8192 KB Output is correct
9 Correct 50 ms 8044 KB Output is correct
10 Incorrect 59 ms 8164 KB Output isn't correct
11 Incorrect 34 ms 8164 KB Output isn't correct
12 Incorrect 54 ms 8172 KB Output isn't correct
13 Incorrect 36 ms 8172 KB Output isn't correct
14 Correct 34 ms 8044 KB Output is correct
15 Correct 53 ms 8044 KB Output is correct
16 Correct 73 ms 31588 KB Output is correct
17 Incorrect 91 ms 31588 KB Output isn't correct
18 Correct 75 ms 31592 KB Output is correct
19 Correct 84 ms 31588 KB Output is correct
20 Correct 93 ms 31588 KB Output is correct