Submission #171674

#TimeUsernameProblemLanguageResultExecution timeMemory
171674Tuk1352Cezar (COCI16_cezar)C++11
10 / 100
3 ms504 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, la, lb, t=0, a, b;
    cin >> n;
    string S[n], s[n];
    int A[n], K[27];
    vector <int> D[27], T;
    char c1, c2, c[26];
    for (int i = 0; i < 27; i++)
    {
        K[i] = 0;
    }
    for (int i = 0; i < n; i++)
    {
        cin >> S[i];
    }
    for (int i = 0; i < n; i++)
    {
        cin >> A[i];
        s[i] = S[A[i]-1];
    }
    for (int i = 1; i < n; i++)
    {
        la = s[i-1].length();
        lb = s[i].length();
        for (int y = 0; y < min(la,lb); y++)
        {
            if (s[i-1][y] != s[i][y])
            {
                c1 = s[i-1][y];
                c2 = s[i][y];
                a = c1 - 'a';
                b = c2 - 'a';
                D[a].push_back(b);
                K[b]++;
                break;
            }
        }
    }
    for (int i = 0; i < 26; i++)
    {
        if (K[i] == 0)
        {
            t++;
            c1 = 'a'+t-1;
            c[i] = c1;
            T.push_back(i);
        }
    }
    for (int i = 0; i < T.size(); i++)
    {
        a = T[i];
        for (int y = 0; y < D[a].size(); y++)
        {
            b = D[a][y];
            K[b]--;
            if (K[b] == 0)
            {
                t++;
                c1 = 'a'+t-1;
                c[b] = c1;
                T.push_back(b);
            }
        }
    }
    if (t != 26)
    {
        cout << "NE";
        return 0;
    }
    cout << "DA" << "\n";
    for (int i = 0; i < 26; i++)
    {
        cout << c[i];
    }
    return 0;
}

Compilation message (stderr)

cezar.cpp: In function 'int main()':
cezar.cpp:54:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < T.size(); i++)
                     ~~^~~~~~~~~~
cezar.cpp:57:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int y = 0; y < D[a].size(); y++)
                         ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...