Cod sursa(job #3318213)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 27 octombrie 2025 15:33:53
Problema Divk Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

#if 0
    #define fin  cin
    #define fout cout
#else
    ifstream fin("zimeria.in");
    ofstream fout("zimeria.out");
#endif

long long cer, n, i, j, ord[400002], v[400002];
char str[400002][6], car;
long long lexi[27], rasp;

static inline bool Cmp(long long a, long long b) {
    return v[a] < v[b];
}

int main() {
    //ios_base::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);

    fin >> cer >> n;
    for(i = 0; i < 12; i++) {
        fin >> car;
        lexi[car - 'a'] = i;
    }
    for(i = 1; i <= n; i++) {
        fin >> str[i];
        ord[i] = i;
        for(j = 0; j < 5; j++) {
            v[i] = v[i] * 12 + lexi[str[i][j] - 'a'];
        }
    }

    sort(ord + 1, ord + n + 1, Cmp);

    if(cer == 1) {
        for(i = 1; i <= n; i++) rasp += (v[ord[i - 1]] != v[ord[i]]);
        fout << rasp;
    }
    else {
        for(i = 1; i <= n; i++) fout << str[ord[i]] << "\n";
    }

    return 0;
}