Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
125127 柯昊阳 快算24点 C++ 解答错误 40 0 MS 264 KB 2494 2024-01-23 16:27:06

Tests(4/10):


#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; }


测评信息: