NYOJ 325zb的生日

#include<stdio.h>
#include<string.h>
#include<stdlib.h>//
#include<math.h>
int N;
double a[25];
double min, total;
void arrange(int cur, double sum);
int main(void)
{
	
	while(scanf("%d", &N) != EOF)
	{
		int i;
		memset(a, 0, sizeof(a));
		total = 0;
		min = 10010;
		for(i = 0; i < N; i++)
		{
			scanf("%lf", &a[i]);
			total += a[i];
		}
		arrange(0, 0);
		printf("%.0lf\n", min * 2);
	}
	return 0;
}
void arrange(int cur, double sum)//cur西瓜下标, 边找西瓜边求和;;
{
	if(cur == N || sum > total / 2)
	{
		if(fabs(sum - total / 2) < min)
		{
			min = fabs(sum - total / 2);
		}
		return ;
	}
	arrange(cur + 1, sum + a[cur]);//选
	arrange(cur + 1, sum);//不选
}

你可能感兴趣的:(NYOJ 325zb的生日)