Submission #551261

# Submission time Handle Problem Language Result Execution time Memory
551261 2022-04-20T07:29:05 Z ToroTN Type Printer (IOI08_printer) C++14
100 / 100
109 ms 57644 KB
#include<bits/stdc++.h>
using namespace std;
int t,trie[500005][27],n,node,cnt=0,hsh[500005],mx=-1,print=0;
char s[25],phero[25];
vector<char> krit;

void dfs(int u,int lv)
{
    //printf("%d %d\n",u,lv);
    if(hsh[u]!=0)
    {
        krit.push_back('P');
        ++print;
    }
    for(int i=0;i<26;i++)
    {
        if('a'+i!=phero[lv])
        if(trie[u][i]!=-1)
        {
            //printf("%d %d %d %c\n",u,lv,trie[u][i],'a'+i);
            krit.push_back('a'+i);
            dfs(trie[u][i],lv+1);
            //printf("reyna\n");
            if(print!=t)
            krit.push_back('-');
        }
    }
    if(trie[u][phero[lv]-'a']!=-1&&lv<=mx)
    {
        krit.push_back(phero[lv]);
        dfs(trie[u][phero[lv]-'a'],lv+1);
        if(print!=t)
        krit.push_back('-');
    }
}

int main()
{
    memset(trie,-1,sizeof trie);
    scanf("%d",&t);
    for(int j=1;j<=t;j++)
    {
        scanf("%s",s+1);
        n=0;
        for(int i=1;s[i];i++)++n;
        node=0;
        for(int i=1;i<=n;i++)
        {
            if(trie[node][s[i]-'a']==-1)
            {
                ++cnt;
                trie[node][s[i]-'a']=cnt;
            }
            node=trie[node][s[i]-'a'];
        }
        hsh[node]=j;
        if(n>mx)
        {
            mx=n;
            for(int i=1;i<=n;i++)phero[i]=s[i];
        }
    }
    dfs(0,1);
    printf("%d\n",krit.size());
    for(int i=0;i<krit.size();i++)
    {
        printf("%c\n",krit[i]);
    }
}
/*
3
print
the
poem
*/

Compilation message

printer.cpp: In function 'int main()':
printer.cpp:64:14: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wformat=]
   64 |     printf("%d\n",krit.size());
      |             ~^    ~~~~~~~~~~~
      |              |             |
      |              int           std::vector<char>::size_type {aka long unsigned int}
      |             %ld
printer.cpp:65:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |     for(int i=0;i<krit.size();i++)
      |                 ~^~~~~~~~~~~~
printer.cpp:40:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |     scanf("%d",&t);
      |     ~~~~~^~~~~~~~~
printer.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |         scanf("%s",s+1);
      |         ~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 22 ms 53076 KB Output is correct
2 Correct 20 ms 53076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 53072 KB Output is correct
2 Correct 20 ms 53144 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 23 ms 53076 KB Output is correct
2 Correct 22 ms 53108 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 53116 KB Output is correct
2 Correct 26 ms 53048 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 21 ms 53104 KB Output is correct
2 Correct 21 ms 53076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 23 ms 53104 KB Output is correct
2 Correct 23 ms 53204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 27 ms 53332 KB Output is correct
2 Correct 33 ms 53868 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 38 ms 53856 KB Output is correct
2 Correct 27 ms 53320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 56 ms 54768 KB Output is correct
2 Correct 97 ms 57068 KB Output is correct
3 Correct 59 ms 55236 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 47 ms 54444 KB Output is correct
2 Correct 97 ms 57644 KB Output is correct
3 Correct 83 ms 55488 KB Output is correct
4 Correct 109 ms 57536 KB Output is correct