标签:
1 #include <cstdio> 2 #include <cmath> 3 #include <cstring> 4 #include <ctime> 5 #include <iostream> 6 #include <algorithm> 7 #include <set> 8 #include <vector> 9 #include <sstream> 10 #include <queue> 11 #include <typeinfo> 12 #include <fstream> 13 #include <map> 14 #include <stack> 15 using namespace std; 16 #define INF 100000 17 typedef long long ll; 18 const int maxn=10010; 19 char letter[maxn]; 20 int vis[27]; 21 int main() 22 { 23 int v; 24 while(scanf("%d%s",&v,letter)){ 25 if(v==0&&!strcmp(letter,"END")) break; 26 memset(vis,0,sizeof(vis)); 27 int n=strlen(letter); 28 for(int i=0;i<n;i++){ 29 vis[i]=letter[i]-‘A‘+1; 30 } 31 sort(vis,vis+n); 32 int flag=0; 33 for(int i=n-1;i>=0;i--){ 34 if(flag) break; 35 for(int j=n-1;j>=0;j--){ 36 if(flag) break; 37 if(j==i) continue; 38 for(int k=n-1;k>=0;k--){ 39 if(flag) break; 40 if(k==i||k==j) continue; 41 for(int l=n-1;l>=0;l--){ 42 if(flag) break; 43 if(l==i||l==j||l==k) continue; 44 for(int h=n-1;h>=0;h--){ 45 if(h==l||h==k||h==j||h==i) continue; 46 if(vis[i]-pow(vis[j],2)+pow(vis[k],3)-pow(vis[l],4)+pow(vis[h],5)==v){ 47 printf("%c%c%c%c%c\n",vis[i]-1+‘A‘,vis[j]-1+‘A‘,vis[k]-1+‘A‘,vis[l]-1+‘A‘,vis[h]-1+‘A‘); 48 flag=1; 49 break; 50 } 51 } 52 } 53 } 54 } 55 56 } 57 if(!flag) printf("no solution\n"); 58 } 59 return 0; 60 }
标签:
原文地址:http://www.cnblogs.com/RRirring/p/4711611.html