Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
125127 | 柯昊阳 | 快算24点 | C++ | 解答错误 | 40 | 0 MS | 264 KB | 2494 | 2024-01-23 16:27:06 |
#include <bits/stdc++.h> using namespace std; int a[260][4]; int b[260][4]; int cnt = 0; int cnt2; int arr[15],brr[15]; int s[10]; bool tru(){ memset(brr,0,sizeof(int)*15); for(int i = 1;i<=4;i++) brr[arr[i]]++; for(int i = 1;i<=10;i++){ if(brr[i]>1) return false; } return true; } void fun(int rrr){ if(rrr == 4+1){ if(tru()){ a[cnt][0] = s[arr[1]]; a[cnt][1] = s[arr[2]]; a[cnt][2] = s[arr[3]]; a[cnt++][3] = s[arr[4]]; cnt2++; return ; } return; } for(int i = 1;i<=4;i++){ arr[rrr] = i; fun(rrr+1); } } void f2(){ for(int i = 0;i<4;i++){ for(int j = 0;j<4;j++){ for(int k = 0;k<4;k++){ b[cnt2][0] = i; b[cnt2][1] = j; b[cnt2][2] = k; cnt2++; } } } } int main(){ int n,m,k,x; cin>>s[1]>>s[2]>>s[3]>>s[4]; fun(1); f2(); for(int i = 0;i<cnt;i++){ for(int j = 0;j<cnt2;j++){ deque<int> stk; stk.push_back(a[i][0]); stk.push_back(a[i][1]); stk.push_back(a[i][2]); stk.push_back(a[i][3]); int cur = 0; while(stk.size()>1){ int s1 = stk.front(); stk.pop_front(); int s2 = stk.front(); stk.pop_front(); switch(b[j][cur]){ case 0: stk.push_front(s1+s2); break; case 1: stk.push_front(s1-s2); break; case 2: stk.push_front(s1*s2); break; case 3: stk.push_front(s1/s2); break; } cur++; } if(stk.front()==24){ stk.pop_front(); stk.push_back(a[i][0]); stk.push_back(a[i][1]); stk.push_back(a[i][2]); stk.push_back(a[i][3]); int cur = 0; while(stk.size()>1){ int s1 = stk.front(); stk.pop_front(); int s2 = stk.front(); stk.pop_front(); switch(b[j][cur]){ case 0: cout<<max(s1,s2)<<"+"<<min(s1,s2)<<"="<<s1+s2; stk.push_front(s1+s2); break; case 1: cout<<max(s1,s2)<<"-"<<min(s1,s2)<<"="<<max(s1,s2)-min(s1,s2); stk.push_front(s1-s2); break; case 2: cout<<max(s1,s2)<<"*"<<min(s1,s2)<<"="<<s1*s2; stk.push_front(s1*s2); break; case 3: cout<<max(s1,s2)<<"/"<<min(s1,s2)<<"="<<max(s1,s2)/min(s1,s2); stk.push_front(s1/s2); break; } cout<<endl; cur++; } return 0; } } } cout<<"No"<<endl; return 0; }