Submission #721985

#TimeUsernameProblemLanguageResultExecution timeMemory
721985Dec0DeddPIN (CEOI10_pin)C++14
70 / 100
271 ms14776 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;
    }

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