社区讨论

进食厚仁

P1236算24点参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mdfpk8u3
此快照首次捕获于
2025/07/23 16:35
8 个月前
此快照最后确认于
2025/07/23 16:45
8 个月前
查看原帖

不要想到什么就写什么

CPP
#include <bits/stdc++.h>
using namespace std;
int a[6];
bool chs[6];
int main(){
    cin>>a[0]>>a[1]>>a[2]>>a[3];
    chs[4]=chs[5]=1;
    for(int i1=0;i1<4;i1++){
        for(int j1=0;j1<4;j1++){
            if(i1==j1) continue;
            chs[i1]=chs[j1]=1;
            chs[4]=0;
            for(int f1=0;f1<4;f1++){
                if(f1==0){
                    a[4]=a[i1]+a[j1];
                }
                if(f1==1&&a[i1]>a[j1]){
                    a[4]=a[i1]-a[j1];
                }
                if(f1==2){
                    a[4]=a[i1]*a[j1];
                }
                if(f1==3&&a[i1]%a[j1]==0){
                    a[4]=a[i1]/a[j1];
                }
                for(int i2=0;i2<5;i2++){
                    for(int j2=i2+1;j2<5;j2++){
                        if(i2==j2) continue;
                        if(!chs[i2]&&!chs[j2]){
                            chs[i2]=chs[j2]=1;
                            chs[5]=0;
                            for(int f2=0;f2<4;f2++){
                                if(f2==0){
                                    a[5]=a[i2]+a[j2];
                                }
                                if(f2==1&&a[i2]>a[j2]){
                                    a[5]=a[i2]-a[j2];
                                }
                                if(f2==2){
                                    a[5]=a[i2]*a[j2];
                                }
                                if(f2==3&&a[i2]%a[j2]==0){
                                    a[5]=a[i2]/a[j2];
                                }
                                for(int i3=0;i3<6;i3++){
                                    for(int j3=i3+1;j3<6;j3++){
                                        if(!chs[i3]&&!chs[j3]){
                                            if(a[i3]+a[j3]==24){
                                                if(a[i1]<a[j1]){swap(i1,j1);}
                                                if(a[i2]<a[j2]){swap(i2,j2);}
                                                if(a[i3]<a[j3]){swap(i3,j3);}
                                                if(f1==0){
                                                    if(f2==0){
                                                        printf("%d+%d=%d\n%d+%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d+%d=%d\n%d-%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d+%d=%d\n%d*%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d+%d=%d\n%d/%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==1){
                                                    if(f2==0){
                                                        printf("%d-%d=%d\n%d+%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d-%d=%d\n%d-%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d-%d=%d\n%d*%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d-%d=%d\n%d/%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==2){
                                                    if(f2==0){
                                                        printf("%d*%d=%d\n%d+%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d*%d=%d\n%d-%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d*%d=%d\n%d*%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d*%d=%d\n%d/%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==3){
                                                    if(f2==0){
                                                        printf("%d/%d=%d\n%d+%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d/%d=%d\n%d-%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d/%d=%d\n%d*%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d/%d=%d\n%d/%d=%d\n%d+%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                return 0;
                                            }
                                            if(a[j3]-a[i3]==24){
                                                swap(i3,j3);
                                                if(a[i1]<a[j1]){swap(i1,j1);}
                                                if(a[i2]<a[j2]){swap(i2,j2);}
                                                if(a[i3]<a[j3]){swap(i3,j3);}
                                                if(f1==0){
                                                    if(f2==0){
                                                        printf("%d+%d=%d\n%d+%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d+%d=%d\n%d-%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d+%d=%d\n%d*%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d+%d=%d\n%d/%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==1){
                                                    if(f2==0){
                                                        printf("%d-%d=%d\n%d+%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d-%d=%d\n%d-%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d-%d=%d\n%d*%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d-%d=%d\n%d/%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==2){
                                                    if(f2==0){
                                                        printf("%d*%d=%d\n%d+%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d*%d=%d\n%d-%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d*%d=%d\n%d*%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d*%d=%d\n%d/%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==3){
                                                    if(f2==0){
                                                        printf("%d/%d=%d\n%d+%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d/%d=%d\n%d-%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d/%d=%d\n%d*%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d/%d=%d\n%d/%d=%d\n%d-%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                return 0;
                                            }
                                            if(a[i3]*a[j3]==24){
                                                if(a[i1]<a[j1]){swap(i1,j1);}
                                                if(a[i2]<a[j2]){swap(i2,j2);}
                                                if(a[i3]<a[j3]){swap(i3,j3);}
                                                if(f1==0){
                                                    if(f2==0){
                                                        printf("%d+%d=%d\n%d+%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d+%d=%d\n%d-%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d+%d=%d\n%d*%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d+%d=%d\n%d/%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==1){
                                                    if(f2==0){
                                                        printf("%d-%d=%d\n%d+%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d-%d=%d\n%d-%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d-%d=%d\n%d*%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d-%d=%d\n%d/%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==2){
                                                    if(f2==0){
                                                        printf("%d*%d=%d\n%d+%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d*%d=%d\n%d-%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d*%d=%d\n%d*%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d*%d=%d\n%d/%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==3){
                                                    if(f2==0){
                                                        printf("%d/%d=%d\n%d+%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d/%d=%d\n%d-%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d/%d=%d\n%d*%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d/%d=%d\n%d/%d=%d\n%d*%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                return 0;
                                            }
                                            if(a[i3]/a[j3]==24){
                                                if(a[i1]<a[j1]){swap(i1,j1);}
                                                if(a[i2]<a[j2]){swap(i2,j2);}
                                                if(a[i3]<a[j3]){swap(i3,j3);}
                                                if(f1==0){
                                                    if(f2==0){
                                                        printf("%d+%d=%d\n%d+%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d+%d=%d\n%d-%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d+%d=%d\n%d*%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d+%d=%d\n%d/%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==1){
                                                    if(f2==0){
                                                        printf("%d-%d=%d\n%d+%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d-%d=%d\n%d-%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d-%d=%d\n%d*%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d-%d=%d\n%d/%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==2){
                                                    if(f2==0){
                                                        printf("%d*%d=%d\n%d+%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d*%d=%d\n%d-%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d*%d=%d\n%d*%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d*%d=%d\n%d/%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                if(f1==3){
                                                    if(f2==0){
                                                        printf("%d/%d=%d\n%d+%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==1){
                                                        printf("%d/%d=%d\n%d-%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==2){
                                                        printf("%d/%d=%d\n%d*%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                    if(f2==3){
                                                        printf("%d/%d=%d\n%d/%d=%d\n%d/%d=%d",a[i1],a[j1],a[4],a[i2],a[j2],a[5],a[i3],a[j3],24);
                                                    }
                                                }
                                                return 0;
                                            }
                                        }
                                    }
                                }
                            }
                            chs[i2]=chs[j2]=0;
                        }
                    }
                }
            }
            chs[i1]=chs[j1]=0;
        }
    }
    cout<<"No answer!";
    return 0;
}
编译两小时,评测一秒钟。

回复

2 条回复,欢迎继续交流。

正在加载回复...