Submission #815601

# Submission time Handle Problem Language Result Execution time Memory
815601 2023-08-08T17:18:00 Z serifefedartar PIN (CEOI10_pin) C++17
90 / 100
22 ms 10880 KB
#include <bits/stdc++.h>
using namespace std;
 
#define fast ios::sync_with_stdio(0);cin.tie(0);
typedef long long ll;
#define f first
#define s second
#define MOD 1000000007
#define LOGN 20
#define MAXN 1000005
    
int temp[4], same[4];
int cnt[40][40][40][40];
int get(char ch) {
    if (ch >= '0' && ch <= '9')
        return ch-'0';
    return ch-'a'+10;
}

int main() {
    fast
    int N, D;
    cin >> N >> D;
    vector<string> PIN(N);
    for (int i = 0; i < N; i++) {
        cin >> PIN[i];
        for (int mask = 0; mask < 16; mask++) {
            for (int plc = 0; plc < 4; plc++) {
                if ((1<<plc) & mask)
                    temp[plc] = get(PIN[i][plc]);
                else
                    temp[plc] = 36;
            }
            cnt[temp[0]][temp[1]][temp[2]][temp[3]]++;
        }
    }

    for (int plc1 = 0; plc1 <= 36; plc1++) {
        for (int plc2 = 0; plc2 <= 36; plc2++) {
            for (int plc3 = 0; plc3 <= 36; plc3++) {
                for (int plc4 = 0; plc4 <= 36; plc4++) {
                    int same_plc = (plc1 < 36) + (plc2 < 36) + (plc3 < 36) + (plc4 < 36);
                    same[same_plc] += (cnt[plc1][plc2][plc3][plc4] * (cnt[plc1][plc2][plc3][plc4] - 1)) / 2; 
                } 
            }
        }
    }

    if (D == 1)
        cout << same[3] << "\n";
    else if (D == 2)
        cout << same[2] - 3 * same[3] << "\n";
    else if (D == 3)
        cout << same[1] - 2 * same[2] + 3 * same[3] << "\n";
    else
        cout << same[0] - same[1] + same[2] - same[3] << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2260 KB Output is correct
2 Correct 6 ms 2256 KB Output is correct
3 Correct 6 ms 2260 KB Output is correct
4 Correct 11 ms 2984 KB Output is correct
5 Correct 10 ms 3156 KB Output is correct
6 Correct 10 ms 3156 KB Output is correct
7 Correct 11 ms 2900 KB Output is correct
8 Correct 11 ms 3284 KB Output is correct
9 Correct 14 ms 3796 KB Output is correct
10 Correct 14 ms 4048 KB Output is correct
11 Correct 11 ms 3244 KB Output is correct
12 Correct 14 ms 3924 KB Output is correct
13 Correct 11 ms 3284 KB Output is correct
14 Correct 14 ms 3260 KB Output is correct
15 Incorrect 14 ms 3992 KB Output isn't correct
16 Correct 14 ms 10248 KB Output is correct
17 Correct 18 ms 10880 KB Output is correct
18 Correct 16 ms 10452 KB Output is correct
19 Correct 22 ms 10580 KB Output is correct
20 Incorrect 18 ms 10836 KB Output isn't correct