×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#21225: 我不知道要怎麼改
walker19576@gmail.com
(L0u15)
學校 : 臺北市私立薇閣高級中學
編號 : 96112
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [111.235.252.27]
最後登入時間 :
2023-06-05 13:50:25
d375.
10364 - Square
--
UVa
10364
| 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