WA#12求助!!!(CF510C Fox And Names)
  • 板块题目总版
  • 楼主_x39_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/22 11:30
  • 上次更新2024/7/22 13:05:14
查看原帖
WA#12求助!!!(CF510C Fox And Names)
760100
_x39_楼主2024/7/22 11:30

拜托了QWQ

#include<bits/stdc++.h>
using namespace std;
const int N=110;
bool a[N][N];
int n,l1,l2,deg[N];
int c[N],cnt;
string s1,s2;
void tupo(){
	queue<int>q;
	for(int i=0;i<26;i++)
		if(!deg[i])
			q.push(i);
	while(!q.empty()){
		int x=q.front();
		q.pop();
		c[++cnt]=x;
		for(int y=0;y<26;y++)
			if(a[x][y]){
				deg[y]--;
				if(!deg[y])
					q.push(y);
			}		
	}
}
int main(){
	cin>>n>>s1;
	n--;
	while(n--){
		cin>>s2;
		l1=s1.size();l2=s2.size();
		int i;
		for(i=0;i<min(l1,l2);i++)
			if(s1[i]!=s2[i]){
				a[s1[i]-'a'][s2[i]-'a']=1;
				deg[s2[i]-'a']++;
				break;
			}
		if(i==min(l1,l2)&&l1>l2){
			cout<<"Impossible"<<endl;
			return 0;
		}
		s1=s2;
	}
	tupo();
	if(cnt<26){
		cout<<"Impossible"<<endl;
		return 0;
	}
	for(int i=1;i<=cnt;i++)
		cout<<(char)(c[i]+'a');
	return 0;
} 
2024/7/22 11:30
加载中...