奋战杭电ACM(DAY10)1015
2013-09-02 01:26 百里小问 阅读(91) 评论(0) 编辑 收藏 举报不见AC不睡觉!
暴力,不解释居然过了……
晚安~水水的~
Safecracker
#include <iostream> #include <string> #include <algorithm> #include <cmath> using namespace std; bool cp(int a, int b) { return a>b; } int main() { long target,n; int t[30]; string s; while(cin >> target >> s) { n=0; bool suc=false; memset(t,0,sizeof(t)); if(target==0 && s=="END") break; for(int i=0; s[i]!='\0'; i++) t[i]=s[i]-64; sort(t,t+30,cp); for(int v=0; t[v]!=0; v++) { for(int w=0; t[w]!=0; w++) { if(v==w) continue; for(int x=0; t[x]!=0; x++) { if(x==v) continue; for(int y=0; t[y]!=0; y++) { if(y==x) continue; for(int z=0; t[z]!=0; z++) { if(z==y) continue; n=t[v] - pow(t[w],2) + pow(t[x],3) - pow(t[y],4) + pow(t[z],5); if(n==target) { printf("%c%c%c%c%c\n",t[v]+64,t[w]+64,t[x]+64,t[y]+64,t[z]+64); suc=true; break; } } if(suc==true) break; } if(suc==true) break; } if(suc==true) break; } if(suc==true) break; } if(suc==false) cout << "no solution" << endl; } return 0; }