1 条题解
-
0
C :
#include"stdio.h" #include"string.h" int dp[10001]; int max(int a,int b) { return a>b?a:b; } int main() { int n; while(scanf("%d",&n)!=EOF) { int s[501],i,j,sum=0; memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) { scanf("%d",&s[i]); sum+=s[i]; } int v=sum/2; for(i=0;i<n;i++) for(j=v;j>=s[i];j--) dp[j]=max(dp[j],dp[j-s[i]]+s[i]); if(dp[v]!=sum-dp[v]) printf("%d %d\n",dp[v],sum-dp[v]); else printf("%d\n",dp[v]); } return 0; }
- 1
信息
- ID
- 371
- 时间
- 3000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者