蛮王哪个皮肤手感最好:C++问题-CounterStrike大赛

来源:百度文库 编辑:高考问答 时间:2024/05/09 02:16:39
宿舍楼决定举行CounterStrike游戏大赛,为了使比赛更为精彩,大家决定将所有参赛同学先平均分为东西部两大联盟再组队对战,根据之前比赛的统计,每个同学的游戏战斗力分别为S1,S2,S3...SN.(S<=100000)。现在需要你将参赛同学平均分到两大联盟中,使得两联盟的总战斗力的差为最小,以增加比赛的激烈性。要注意的是两联盟的人数不一定相同,比如一个战斗力90000的同学能够以一敌十。
Input
该程序有多组测试数据,每组测试数据第一行为整数N(1<=N<=20),表示有N个同学。接下去N行,为每个同学的战斗力。
Output
每组测试数据只需输出经过划分后两联盟的总战斗力差的最小值。
Sample Input
5
5
8
13
27
14
2
4
4
Sample Output
3
0
Source
admin
*/
#include<iostream>
using namespace std;
int main()
{
int n,i,j,a[21]={0},s;
while(cin>>n)
{
s=0;
if(n==1) cin>>a[0],cout<<a[0]<<endl;
else
{for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(a[j]<a[j+1]){a[20]=a[j],a[j]=a[j+1],a[j+1]=a[20];}
for(i=0;i<n;i++)
(s>0)?s-=a[i]:s+=a[i];
cout<<abs(s)<<endl;
}}
return 0;
}
我想问一下,我这样写错在哪里了?