社区讨论
站外题求助,16pts
灌水区参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lzo515t8
- 此快照首次捕获于
- 2024/08/10 20:54 2 年前
- 此快照最后确认于
- 2024/08/10 21:59 2 年前
CPP
题目描述
某人有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
最好成果:贪心
CPP#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);
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...