Submission #1322860

#TimeUsernameProblemLanguageResultExecution timeMemory
1322860yessimkhanPIN (CEOI10_pin)C++20
20 / 100
1100 ms116676 KiB
#include <bits/stdc++.h>
// solved by bekagg
#define int long long
#define ent '\n'
#define pb push_back
#define all(x) x.begin(),x.end()
#define PRaim_bek_abi ios_base::sync_with_stdio(0);cin.tie(0);

using namespace std;

const int N = 1e5+5;
const int MOD = 1e9+7;

int n , d , ans;
map<string , int>mp;
vector<char>v;

void arkanefury228(){
    cin >> n >> d;
    for (int i = 0; i <= 9; i++){
        v.pb(char(i + '0'));
    }
    for (int i = 0; i < 26; i++){
        v.pb(char(i + 'a'));
    }
    if (d == 0){
        for (int i = 1; i <= n; i++){
            string s;
            cin >> s;
        }
        cout << 0;
        return;
    }
    if (d == 1){
        for (int i = 1; i <= n; i++){
            string s;
            cin >> s;
            for (int j = 0; j < v.size(); j++){
                string g = s;
                g[0] = v[j];
                ans += mp[g];
            }
            for (int j = 0; j < v.size(); j++){
                string g = s;
                g[1] = v[j];
                ans += mp[g];
            }
            for (int j = 0; j < v.size(); j++){
                string g = s;
                g[2] = v[j];
                ans += mp[g];
            }
            for (int j = 0; j < v.size(); j++){
                string g = s;
                g[3] = v[j];
                ans += mp[g];
            }
            mp[s]++;
        }
        cout << ans;
        return;
    }
    if (d == 2){
        for (int i = 1; i <= n; i++){
            string s;
            cin >> s;

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[0] = v[j];
                    g[1] = v[k];
                    ans += mp[g];
                }
            }

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[0] = v[j];
                    g[2] = v[k];
                    ans += mp[g];
                }
            }

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[0] = v[j];
                    g[3] = v[k];
                    ans += mp[g];
                }
            }

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[1] = v[j];
                    g[2] = v[k];
                    ans += mp[g];
                }
            }

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[1] = v[j];
                    g[3] = v[k];
                    ans += mp[g];
                }
            }

            for (int j = 0; j < v.size(); j++){
                for (int k = 0; k < v.size(); k++){
                    string g = s;
                    g[2] = v[j];
                    g[3] = v[k];
                    ans += mp[g];
                }
            }
            
            mp[s]++;
        }
        cout << ans;
        return;
    }
}

signed main(){

    PRaim_bek_abi

    int t=1;
    //cin>>t;
    for (int respagold = 1; respagold <= t; respagold++) arkanefury228();
}
#Verdict Execution timeMemoryGrader output
Fetching results...