头像666
by Rocket_raccoon_ @ 2018-02-05 15:22:32
```
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int n,card[1001][2];
int i,j,k,num=0,jend=0,t;
int check[6001],minx=9999999;
bool ifi[6001];
int main()
{
scanf("%d",&n);
for(i=1;i<=n;++i)
{
scanf("%d%d",&card[i][0],&card[i][1]);
num+=card[i][0]+card[i][1];
}
num=num/2;
memset(check,0,sizeof(check));
memset(ifi,false,sizeof(ifi));ifi[0]=true;
for(i=1;i<=n;++i)
for(j=jend;j>=0;--j)
for(k=0;k<=1;++k)
{
if(!ifi[j]) continue;
else
{
if(j+card[i][k]>2*num) continue;
if(jend<j+card[i][k]) jend=j+card[i][k];
ifi[j+card[i][k]]=true;
if(check[j+card[i][k]]!=0)
{
if(k==0) check[j+card[i][k]]=min(check[j+card[i][k]],check[j]);
else
{
if(k==1) check[j+card[i][k]]=min(check[j+card[i][k]],check[j]+1);
else continue;
}
}
else
check[j+card[i][k]]=k;
}
}
for(i=1;i<=jend;++i)
if(ifi[i]&&abs(num-i)<minx) minx=abs(num-i),t=i;
printf("%d",check[t]);
return 0;
}
```
by zhaomingrui @ 2018-02-05 15:40:27
@大佬,哪里有错??
by zhaomingrui @ 2018-02-05 15:40:44
头像666
by Tony_Ni @ 2018-02-05 16:03:07
同学你是哪里的?这么难的题应该只有大佬才会做吧!
by Tony_Ni @ 2018-02-05 16:03:49
我是垃圾,来自m-48星云
by zhaomingrui @ 2018-02-05 16:05:09
我叫捷德奥特曼
by zhaomingrui @ 2018-02-05 16:05:43
大佬,告诉我哪里错了!!!,拜托!!!
by zhaomingrui @ 2018-02-05 16:06:31
我是铠甲勇士
来自233星云 改天来切磋一下
by Tony_Ni @ 2018-02-05 16:07:14
一看我的代码风格就知道我是垃圾吧!
by zhaomingrui @ 2018-02-05 16:07:27