当前位置: 代码迷 >> 综合 >> rnqoj-72-拔河比赛
  详细解决方案

rnqoj-72-拔河比赛

热度:20   发布时间:2023-12-19 11:09:11.0

记录状态

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define INF 99999999
int dp[10001][101];
int t[10001][101];
int main()
{int n,i,j,k;int a[101];int s=0;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]),s+=a[i];;memset(dp,-1,sizeof(dp));dp[0][0]=0;for(i=1;i<=n;i++){for(j=s;j>=a[i];j--){for(k=n;k>=1;k--){if(j-a[i]>0&&k==1)continue;if(dp[j-a[i]][k-1]!=-1){dp[j][k]=dp[j-a[i]][k-1]+1;t[j][k]=1;}}}}for(i=s/2;i<=s;i++){for(j=0;j<=n;j++)if(dp[i][j]!=-1){cout<<((2*i-s)>0?(2*i-s):(s-2*i))<<endl;break;}if(j!=n+1)break;}return 0;
}