A. Vanya and Cards
题意:把n个数加到一起, 让你求最少用几个y ( -x <= y <= x ), 能与n个数的和平衡。
#include <stdio.h>
int abs(int x)
{
if(x < 0)
return -x;
return x;
}
int main()
{
int n, x, sum;
while(~scanf("%d %d", &n, &x))
{
sum = 0;
for(int i = 0; i < n; i++)
{
int temp;
scanf("%d", &temp);
sum += temp;
}
sum = abs(sum);
printf("%d\n", (sum + x - 1) / x);
}
return 0;
}
B. Sereja and Contests
题意:DIV1 由一个比赛标识组成, DIV2由两个比赛标识组成,并且DIV2的两个比赛标识之差为1。
#include <stdio.h>
#include <string.h>
int main()
{
int n, m, sum, a[4001], count;
while(~scanf("%d %d", &n, &m))
{
memset(a, 0, sizeof(a));
sum = count = 0;
for(int i = 0; i < m; i++)
{
int temp, tmp1, tmp2;
scanf("%d %d", &temp, &tmp1);
a[tmp1] = 1;
if(temp & 1)
{
scanf("%d", &tmp2);
a[tmp2] = 1;
count += 2;
}
else
{
count++;
}
}
for(int i = 1; i < n - 1; i++)
{
if(!a[i] && (!a[i+1]))
{
sum++;
i++;
}
}
printf("%d %d\n", sum + (n-1-count - (sum*2)), n-count-1);
}
return 0;
}