为啥RE了捏
查看原帖
为啥RE了捏
656277
scyjz14楼主2022/1/31 17:39
#include <iostream>
#include <algorithm>
using namespace std;
int n,a[100005],u,b[10],cnt;
const int mod=1e9+7;
long long ans;
bool check(){
	sort(b+1,b+5);
	if(b[3]==b[4]&&b[1]+b[2]==b[3])return 1;
	else return 0;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>a[i];
	}
	u=1<<n;
	for(int i=0;i<u;++i){
		if(__builtin_popcount(i)==4){
			cnt=1;
			for(int j=1;j<=n;++j){
				if(i&1<<(j-1))b[cnt++]=a[j];
			}
			if(check())ans++;
			ans%=mod;
		}
	}
	cout<<ans;
	return 0;
}

用的是二进制的想法,自己电脑测试都没问题啊 求大佬解答QAQ

2022/1/31 17:39
加载中...