0分求助,自己造的样例全都过
  • 板块学术版
  • 楼主Ze_king
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/7/16 20:33
  • 上次更新2023/11/3 09:27:50
查看原帖
0分求助,自己造的样例全都过
756825
Ze_king楼主2023/7/16 20:33
# include <iostream>
using namespace std;
int a[100010],ans;
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int U=(1<<n)-1;
    int S,T;
    for(S=0;S<=U;S++){
        if(__builtin_popcount(S)==2){               //先找到两根长度相等的木棒

            int i,x,y;
            for(i=0;i<n;i++){                       //先找一根
                if((1<<i)&S) {x=a[i];break;}  
            }
            i++;
            for(;i<n;i++){                          //继续找
                if((1<<i)&S) {y=a[i];break;}
            }
            if(x==y){                               //判断两根长度是否相等
                for(T=0;T<=U;T++){
                    if(__builtin_popcount(T)==2){   //找另外两根
                        if(T&(S^U)){
                            int j,z,w;
                            for(j=0;j<n;j++){
                                if((1<<j)&T) {z=a[j];break;}
                            }
                            j++;
                            for(;j<n;j++){
                                if((1<<j)&T) {w=a[j];break;}
                            }
                            if(z+w==x) ans++;
                        }
                    }
                }
            }
        }
    }
    cout<<ans;
    return 0;
}

2023/7/16 20:33
加载中...