1 solutions
-
1
#include<bits/stdc++.h> using namespace std; bool dfs(vector<int> v) { if(v.size()==1) { return v[0]==24; } int n=v.size(); for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { vector<int> b; for(int k=0;k<n;k++) { if(k==i||k==j) continue; b.push_back(v[k]); } b.push_back(v[i]+v[j]); if(dfs(b)) return 1; b.pop_back();//删除最后一个元素 b.push_back(v[i]-v[j]); if(dfs(b)) return 1; b.pop_back(); b.push_back(v[j]-v[i]); if(dfs(b)) return 1; b.pop_back(); b.push_back(v[i]*v[j]); if(dfs(b)) return 1; b.pop_back(); if(v[j]!=0) { b.push_back(v[i]/v[j]); if(dfs(b)) return 1; b.pop_back(); } if(v[i]!=0) { b.push_back(v[j]/v[i]); if(dfs(b)) return 1; b.pop_back(); } } } return 0; } int main() { vector<int> v; map<char,int> h={{'A',1},{'J',11},{'Q',12},{'K',13}}; for(int i=0;i<4;i++) { char x; cin>>x; int t; if(x>='2'&&x<='9') { t=x-'0'; } else t=h[x]; v.push_back(t); } if(dfs(v)) cout<<"Y"; else cout<<"N"; return 0; }
- 1
Information
- ID
- 242
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 12
- Accepted
- 4
- Uploaded By