站外提悬棺
  • 板块题目总版
  • 楼主Adolfo_North
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/10 20:14
  • 上次更新2024/7/10 21:43:24
查看原帖
站外提悬棺
616964
Adolfo_North楼主2024/7/10 20:14

有n个钱包。钱包里有钱(废话)

你本来想独吞,但是你有2个最佳损友,要和你一起分

你要保证你分到的钱大于等于损友分到的钱。

但为了不伤和气,你要让你自己的钱在领先损友的情况下最少。

求你分到的钱。

可能对题意不是很清楚。

#include<bits/stdc++.h>
using namespace std;
int n,a[27];
int f[2007];
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int sum=0;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];
	f[0]=1;
	for(int i=1;i<=n;i++){
		for(int j=sum;j>=a[i];j--){
			f[j]|=f[j-a[i]];
		}
	}
	for(int i=1;i<=sum;i++){
		if(f[i]&&3*i>sum){
			cout<<i;
			return 0;
		}
	}
	return 0;
}

错误数据:

in
10
32
3
35
49
15
36
29
48
17
48
out
109
2024/7/10 20:14
加载中...