站外题求助,16分
  • 板块题目总版
  • 楼主封禁用户
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/11 11:11
  • 上次更新2024/8/11 12:11:44
查看原帖
站外题求助,16分
1053866
封禁用户楼主2024/8/11 11:11
题目描述  
某人有n个球,第i个球有ai的质量,要将这n个球分成两堆(两堆球的数量可以不同)放在跷跷板两侧,问跷跷板两侧的球的质量的差的绝对值最小是多少?
输入格式  
第一行一个数n。  
第二行n个数a1……an。  
输出格式  
一行一个数,表示求的答案。  
样例一  
input  
5  
1 5 3 4 7  
output  
0  
explanation  
将1,5,4放在左侧,将3,7放在右侧,两者差为0。  
样例二  
input  
4  
100 9 8 1  
output  
82  
数据范围  
对于100%的数据中,  
n≤25,  
0≤ai≤1000000000,  
n≤25,0≤ai≤1000000000;  
对于第i个测试点n=i,且分值为4。  
时间限制:1s  
空间限制:128MB  

最好成果:贪心

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a[40],f1=0,f2=0;
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=0;i<n;i++){
		if(f1<f2)
			f1+=a[i];
		else
			f2+=a[i];
	}
	cout<<abs(f1-f2);
}
2024/8/11 11:11
加载中...