P2277求条
查看原帖
P2277求条
713343
Naganorhara_Yoimiya楼主2024/9/4 22:43

原题链接

#include <bits/stdc++.h>
using namespace std;

int a[5];

int F(int x,int k, int y){
   if(k==1) return x+y;
   if(k==2) return max(x,y)-min(x,y);
   if(k==3) return x*y;
   return (y==0 || x<y || x%y!=0) ? -999999 : x/y;
}

int main(){
    long long ans = 0;
   scanf("%d%d%d%d", &a[1],&a[2],&a[3],&a[4]);
   sort(a+1,a+5);                                            
   do{
     for (int i = 1; i <= 4; i++)                            
       for (int j = 1; j <= 4; j++)
        for (int k = 1; k <= 4; k++)
          if (F(F(F(a[1],i,a[2]),j,a[3]),k,a[4])==24)  ans++;
         else if (F(F(a[1],i,a[2]),k,F(a[3],j,a[4])) == 24) ans++;
  }  while (next_permutation(a + 1, a + 5));
  printf("%d\n",ans);
  system("pause");
  return 0;
}
2024/9/4 22:43
加载中...