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 |
大家小心密码串和明码串不等长的情况啊 也要输出NO的!!!!/*我submit了N次 就是不AC 上网问了大牛 才知道两个串是否等长需要判断……*/ #include<iostream> using namespace std; void QuickSort(char *p,int headmark,int tailmark) { if(headmark>=tailmark)//排序区域长度不大于1,不需再排 {return;} int temp,emp,big,small; temp=p[headmark]; small=headmark; big=tailmark; while(small<big) { while(small<big && p[big]>=temp) --big; p[small]=p[big]; while(small<big && p[small]<=temp) ++small; p[big]=p[small]; } emp=big; p[emp]=temp;//定位枢轴值 QuickSort(p,headmark,emp-1); QuickSort(p,emp+1,tailmark); } int main() { char code[100],mes[100]; int i; while(cin>>code>>mes) //cin>>code>>mes; { int td; bool p=0,ga=0; for(td=0;td<=26;td++) { if(strlen(mes)!=strlen(code))//加了这句,果断AC- -! break;//容错考虑 char temp[100]; for(i=0;i<strlen(code);i++) { temp[i]=code[i]; } p=1; for(i=0;i<strlen(code);i++)//先解开替代方式 { temp[i]=temp[i]-td; if(temp[i]<'A') {temp[i]='Z'-('A'-temp[i])+1;} } QuickSort(temp,0,strlen(code)-1); QuickSort(mes,0,strlen(code)-1);//快排替代的结果 for(i=0;i<strlen(code);i++) { if(mes[i]!=temp[i]) {p=0;break;} } if(p) {ga=1;break;} } if(ga) cout<<"YES"<<endl; else cout<<"NO"<<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