PAT (Advanced Level) 1077. Kuchiguse (20)

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,f,a[200],k;
    char s[200][1024],st[1024];
    string ans;
    while(~scanf("%d",&n))
    {
        ans="";
        getchar();
        for(int i=0; i<n; i++)
        {
            gets(st);
            a[i]=strlen(st);
            k=0;
            for(int j=a[i]-1;j>=0;j--,k++)
            {
                s[i][k]=st[j];
            }
            s[i][k]=0;
        }
        //for(int i=0;i<n;i++) puts(s[i]);
        int j=0;
        f=1;
        while(f)
        {
            for(int i=1; i<n; i++)
            {
                if(j>=a[i]||j>=a[i-1])
                    {f=0;break;}
                if(s[i][j]!=s[i-1][j])
                {
                    f=0;break;
                }
            }
            if(f==1) ans+=s[0][j];
            j++;
        }
        if(ans.size()==0) puts("nai");
        else
        {
            for(int i=ans.size()-1;i>=0;i--)
            {
                printf("%c",ans[i]);
            }
            printf("\n");
        }
    }
    return 0;
}

你可能感兴趣的:(PAT (Advanced Level) 1077. Kuchiguse (20))