看了[这个](https://www.luogu.com.cn/discuss/775376)后改成 ```getchar``` 也是一样的结果。
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,graph[10010][10010],degree[10010],now[10010];//degree:入度
bool b[10010];
string ans;
int top(){
ans="";
int f=1;
for(int i=1;i<=n;i++) now[i]=degree[i],b[i]=0;
for(int o=0;o<n;o++){
int cnt=0,minpos;
for(int i=1;i<=n;i++)
if(b[i]==0&&now[i]==0) cnt++,minpos=i;
if(cnt==0) return -1;
if(cnt>=2) f=0;
ans+=minpos+64;
b[minpos]=1;
for(int j=1;j<=n;j++)
if(graph[minpos][j]==1)
now[j]--;
}
return f;
}
int main(){
scanf("%d%d",&n,&m);
getchar();
for(int i=1;i<=26;i++){
for(int j=1;j<=26;j++)
graph[i][j]=0;
degree[i]=0;
}
int flag=0;
for(int i=1;i<=m;i++){
string tmp;
int t1=getchar()-64;
getchar();
int t2=getchar()-64;
getchar();
if(graph[t1][t2]==0) degree[t2]++;
graph[t1][t2]=1;
int p=top();
if(flag==0){
if(p==1){
printf("Sorted sequence determined after %d relations: ",i);
cout<<ans<<".\n";
flag=1;
}else if(p==-1) printf("Inconsistency found after %d relations.\n",i),flag=1;
}
}
if(!flag) printf("Sorted sequence cannot be determined.\n");
}
```
by Hero_Broom @ 2024-04-05 21:48:01