Submission #238956

#TimeUsernameProblemLanguageResultExecution timeMemory
238956dolphingarlicPIN (CEOI10_pin)C++14
90 / 100
494 ms14604 KiB
#include <bits/stdc++.h>
#define FOR(i, x, y) for (int i = x; i < y; i++)
typedef long long ll;
using namespace std;

map<string, ll> cnt[16];
ll ans[5];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n, d;
    cin >> n >> d;
    FOR(i, 0, n) {
        string s;
        cin >> s;
        FOR(j, 0, 16) {
            string sub = "";
            FOR(k, 0, 4) if (j & (1 << k)) sub += s[k];
            cnt[j][sub]++;
        }
    }

    FOR(i, 0, 16) {
        ll contrib = 0;
        for (pair<string, ll> j : cnt[i])
            contrib += j.second * (j.second - 1) / 2;
        ans[4 - __builtin_popcount(i)] += contrib;
    }
    
    if (d == 1) cout << ans[1] - ans[0];
    else if (d == 2) cout << ans[2] - 3 * (ans[1] - ans[0]);
    else if (d == 3) cout << ans[3] - 3 * (ans[2] + ans[1] - ans[0]);
    else cout << ans[4] - ans[3] + ans[2] - ans[1] + ans[0];
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...