#include<bits/stdc++.h> #include #define INF 0x3f3f3f3f #define PI acos(-1.0) #define N 50001 #define MOD 123 #define E 1e-6 using namespace std; int n; int a[N][101],g[27][27]; int enter[27],vis[27],sum[27]; int cnt; int p; void judge(int x,int y) { if(a[x][y]==0||a[x+1][y]==0) return ; if(a[x][y]!=a[x+1][y]) { g[a[x][y]][a[x+1][y]]=1; enter[a[x+1][y]]++; } else judge(x,y+1); } bool topsort() { for(int i=1;i<=27;++i) if(vis[i]) cnt++; for(int i=1;i<n;++i) judge(i,1); int work,temp; while(p!=cnt) { work=0; for(int i=1;i<=cnt;++i) { if(enter[i]==0) { temp=i; enter[i]=-1; work++; } } if(work!=1) return false; sum[++p]=temp; for(int i=1;i<=cnt;++i) { if(g[temp][i]) { g[temp][i]=0; enter[i]--; } } } return true; } int main() { cin>>n; for(int i=1;i<=(n+1);i++) { string str; cin>>str; for(int j=0;j<=str.size()-1;j++) { a[i][++a[i][0]]=int(str[j]+1-'a'); vis[str[j]+1-'a']=1; } }

if(!topsort())
    cout<<0;
else
{
    for(int i=1;i<=a[n+1][0];++i)
    {
        for(int j=1;j<=cnt;++j)
        {
            if(a[n+1][i]==sum[j])
            {
                cout<<char(j-1+'a');
                break;
            }
        }
    }
}
return 0;

}

0 条评论

目前还没有评论...

信息

ID
399
时间
ms
内存
MiB
难度
6
标签
递交数
87
已通过
28
上传者