| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:代码贴上,望大牛指正In Reply To:求数据,样例过了,一直wa Posted by:antry at 2011-03-06 20:57:37 #include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std;
string str[101],tmp,a,b,c;
int d[101][27];
int main()
{
int i,j,k,flag,num,len;
while(cin>>tmp){
if(tmp=="#") break;
num=0;
while(tmp!="*"){
str[num++]=tmp;
tmp="";
cin>>tmp;
}
sort(str,str+num);
memset(d,0,sizeof(d));
for(i=0;i<num;i++)
for(j=0;j<str[i].length();j++)
d[i][str[i][j]-'a']++;
while(cin>>tmp){
a=b=c=""; flag=0;
if(tmp=="**") {cout<<"$"<<endl;break;}
len=tmp.length();
for(j=0;j<=len;j++){
if(tmp[j]=='|'||j==len){
for(i=0;i<num;i++){
for(k=0;k<a.length();k++)
if(d[i][a[k]-'a']==0)
break;
if(k<a.length()) continue;
for(k=0;k<b.length();k++)
if(d[i][b[k]-'a']>0)
break;
if(k<b.length()) continue;
if(c==""){
flag=1;
cout<<str[i]<<endl;
break;
}
for(k=0;k<c.length();k++)
if(d[i][c[k]-'a']>0){
cout<<str[i]<<endl;
flag=1;
break;
}
if(flag) break;
}
a=b=c="";
if(flag) break;
}
else if(tmp[j]=='-') b+=tmp[++j];
else if(tmp[j]=='+') a+=tmp[++j];
else c+=tmp[j];
} tmp="";
if(flag==0) cout<<"NONE"<<endl;
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator