Submission #1322850

#TimeUsernameProblemLanguageResultExecution timeMemory
1322850bahaktlPIN (CEOI10_pin)C++20
10 / 100
11 ms17216 KiB
#include <bits/stdc++.h>

#define int long long 
#define pb push_back
using namespace std;

const int N=2e5+10;
const int inf=1e18;
const int mod=1e9+7;

pair<int,int> r[N],c[N];

int cnt[38][38][38][38];

signed main() {
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL);
    int T=1;
    // cin>>T;
    while(T--) {
        int n,k;
        cin>>n>>k;
        string s[n+1];
        for(int i=1;i<=n;i++) {
            cin>>s[i];
            int ch1=0,ch2,ch3,ch4;
            if(s[i][0]>='a') ch1=s[i][0]-'a'+10;
            else ch1=s[i][0]-'0';
            if(s[i][1]>='a') ch2=s[i][1]-'a'+10;
            else ch2=s[i][1]-'0';
            if(s[i][2]>='a') ch3=s[i][2]-'a'+10;
            else ch3=s[i][2]-'0';
            if(s[i][3]>='a') ch4=s[i][3]-'a'+10;
            else ch4=s[i][3]-'0';
            cnt[ch1][ch2][ch3][38]++;
            cnt[ch1][ch2][38][ch4]++;
            cnt[ch1][38][ch3][ch4]++;
            cnt[38][ch2][ch3][ch4]++;
            // cout<<ch1<<' '<<ch2<<' '<<ch3<<' '<<ch4<<endl;
        }
        if(n<=2000) {
            int ans=0;
            for(int i=1;i<=n;i++) {
                for(int j=i+1;j<=n;j++) {
                    if(i==j) continue;
                    int cnt=0;
                    for(int l=0;l<4;l++) {
                        if(s[i][l]!=s[j][l]) cnt++;
                    }
                    if(cnt==k) ans++;
                }
            }
            cout<<ans<<"\n";
        }
        if(k==1) {
            int ans=0;
            for(int i=1;i<=n;i++) {
                int ch1=0,ch2,ch3,ch4;
                if(s[i][0]>='a') ch1=s[i][0]-'a'+10;
                else ch1=s[i][0]-'0';
                if(s[i][1]>='a') ch2=s[i][1]-'a'+10;
                else ch2=s[i][1]-'0';
                if(s[i][2]>='a') ch3=s[i][2]-'a'+10;
                else ch3=s[i][2]-'0';
                if(s[i][3]>='a') ch4=s[i][3]-'a'+10;
                else ch4=s[i][3]-'0';
                ans+=cnt[ch1][ch2][ch3][38]+
                cnt[ch1][ch2][38][ch4]+
                cnt[ch1][38][ch3][ch4]+
                cnt[38][ch2][ch3][ch4]-4;
            }
            cout<<ans<<"\n";
        }
    }
}
// 1 2 3 4 5 6 7
#Verdict Execution timeMemoryGrader output
Fetching results...