Submission #721988

#TimeUsernameProblemLanguageResultExecution timeMemory
721988Dec0DeddPIN (CEOI10_pin)C++14
70 / 100
259 ms14484 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int K = 4;
const int N = 5e4+1;

map<string, ll> mp[(1<<K)];

ll ans[6], n, d;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);

    cin>>n>>d;
    for (int i=1; i<=n; ++i) {
        string s; cin>>s;

        for (int j=1; j<(1<<K); ++j) {
            string tmp;
            for (int x=0; x<K; ++x) {
                if (j&(1<<x)) tmp+=s[x];
            }

            ++mp[j][tmp];
        }
    }

    for (int m=0; m<(1<<K); ++m) {
        ll tmp=0;
        for (auto u : mp[m]) tmp+=u.second*(u.second-1)/2;
        ans[4-__builtin_popcount(m)]+=tmp;
    }

    ll k;
    if (d == 1) k=ans[1]-ans[0];
    else if (d == 2) k=ans[2]-3*(ans[1]-ans[0]);
    else if (d == 3) k=ans[3]-2*ans[2]+3*(ans[1]-ans[0]);
    else k=ans[4]-ans[3]+ans[2]-ans[1]+ans[0];
    k=max(0ll, k);
    cout<<k<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...