#include<bits/stdc++.h>
using namespace std;
int rudu[1000001],n,now,m,d[1000001],num;
char a,b,c;
struct Edge{
int to,from;
}edge[1000001];
queue<int> q;
int head[1000001],edge_num,ans=0,answer[1000001];
void add_edge(int u,int v){
edge[++edge_num].to=v;
edge[edge_num].from=head[u];
head[u]=edge_num;
}
char print(){
for(int i=1;i<=ans;i++){
cout<<answer[i]+'A'-1;
}
cout<<endl;
return '.';
}
int tp(){
int out=1,t,u;
for(int i=1;i<=n;i++){
if(rudu[i]==1){
q.push(i);
t++;
}
}
if(t>1) out=0;
while(!q.empty()){
u=q.front();
q.pop();
t=0;
answer[++ans]=u;
for(int i=head[u];i>0;i=edge[i].from){
rudu[edge[i].to]--;
if(rudu[edge[i].to]==1){
t++;
q.push(edge[i].to);
}
}
if(t>1) out=0;
}
for(int i=1;i<=n;i++){
if(rudu[i]>1){
out=-1;
break;
}
}
return out;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a>>b>>c;
add_edge(a-'A'+1,c-'A'+1);
d[c-'A'+1]++;
if(now==0){
for(int j=1;j<=n;j++){
rudu[j]=d[j];
}
now=tp();
num=i;
}
}
if(now==0) cout<<"Sorted sequence cannot be determined."<<endl;
else if(now==1) cout<<"Sorted sequence determined after "<<num<<" relations: "<<print()<<"."<<endl;
else cout<<"Inconsistency found after "<<num<<" relations."<<endl;
return 0;
}
哪里出错了????????????????????????????????????????