表示这是一道考阅读理解的题。以为需要技巧,然而可以暴力。。。
自己做的时候居然出了一些小差错!太不应该了。。。
可以提交的题目连接:点击打开链接
#include<iostream> #include<string> #include<algorithm> using namespace std; char ans[6]; bool flag; void solve(long long ta,string s) { int i,j,k,m,n; flag=false; long long v, w, x, y,z,target; sort(s.begin(),s.end()); for (i=s.length()-1;i>=0;i--) for (j=s.length()-1;j>=0;j--) for (k=s.length()-1;k>=0;k--) for (m=s.length()-1;m>=0;m--) for (n=s.length()-1;n>=0;n--) { if (i==j || i==k || i==m | i==n || j==k || j==m || j==n || k==m || k==n || m==n) continue; v=(long long)s[i]-'A'+1;w=(long long)s[j]-'A'+1;x=(long long)s[k]-'A'+1;y=(long long)s[m]-'A'+1; z=(long long)s[n]-'A'+1; target=v - pow(w,2)+ pow(x,3)- pow(y,4)+ pow(z,5); if (target==ta) { ans[0]=s[i];ans[1]=s[j];ans[2]=s[k];ans[3]=s[m];ans[4]=s[n];ans[5]='\0'; flag=true; return; } } } int main() { long long n; string s; while(cin>>n>>s) { if (n==0 && s=="END") break; solve(n,s); if (flag) cout<<ans<<endl; else cout<<"no solution"<<endl; } return 0; }