#21225: 我不知道要怎麼改


walker19576@gmail.com (L0u15)

學校 : 臺北市私立薇閣高級中學
編號 : 96112
來源 : [111.235.252.27]
最後登入時間 :
2023-06-05 13:50:25
d375. 10364 - Square -- UVa10364 | From: [118.165.159.14] | 發表日期 : 2020-05-03 20:37

一直wa:79

請問錯在哪裡

#include<iostream>
#include<algorithm>
using namespace std;

int T,l,N,num[25];
bool used[25],r;
bool cmp(int a,int b){return a>b;}
bool rect(int total,int idx){
if(total==l)
return true;
else if(total>l)
return false;
for(int i=idx;i<N;++i)
if(!used[i]){
used[i]=true;
if(rect(total+num[i],idx+1))
return true;
used[i]=false;
}
return false;
}

int main()
{
scanf(" %d",&T);
while(T--){
r=true;
fill(used,used+N,false);
l=0;
scanf(" %d",&N);
for(int i=0;i<N;++i){
scanf(" %d",&num[i]);
l+=num[i];
}
if(l%4!=0){
puts("no");
continue;
}
l/=4;
sort(num,num+N,cmp);
for(int i=0;i<3;++i)
if(!rect(0,0)){
r=false;
break;
}
if(r)
puts("yes");
else
puts("no");
}
return 0;
}
 
ZeroJudge Forum