ZOJ1171

错误代码先放这
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
map<char,string>Map;
string s;
char C[10000000];
int num[100];
void _solve(string v)
{
	string t=v;
	sort(t.begin(),t.end());
	num[t[0]-'0']++;
	Map[t[0]]=v;
	for(int i=1;i<t.length();i++)
	 if(t[i]!=t[i-1])
	  { 
		num[t[i]-'0']++;
	    Map[t[i]]=v;
	  }
}
int main()
{
	int T,n,TT;
    cin>>T;
	while(T--){
		memset(num,0,sizeof(num));
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		 {
			 cin>>s;
			 _solve(s);
		 }
		 char c=getchar();
		 int len=0;
		 c=getchar();
		 bool ok=true;
		 while(true){
			 if(c=='#') break;
			 if(islower(c)) toupper(c);
			 C[++len]=c;
			 if(isupper(c))
			  if(num[c-'0']!=1) 
			     ok=false;
			 c=getchar();
		 }
		 if(!ok) printf("AMBIGUITY
");
		 else {
		  for(int i=1;i<=len;i++) 
		    if(isupper(C[i]))
		     cout<<Map[C[i]];
		    else putchar(C[i]);
		    cout<<endl;
		}
		if(T)cout<<endl;
	}
	return 0;
}

原文地址:https://www.cnblogs.com/hua-dong/p/7603953.html