#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
char buf[200000];
int p[30000];
int right1[30000];
int main()
{
int n = 0;
char *token;
int i, j;
int alive = 0;
int right_num = 0;
int tmp;
fgets(buf, 200000, stdin);
token = strtok(buf, " ");
while (token)
{
p[n++] = atoi(token);
token = strtok(NULL, " ");
if (0 == p[n - 1])
{
printf("-1\n");
goto cleanup;
}
}
for (i = 0; i < n; i++)
{
if (p[i] > 0) //向右走
{
right1[right_num++] = p[i];
}
else //向左走
{
if (0 == right_num)
{
alive++;
}
else
{
for (j = right_num - 1; j >= 0; j--)
{
tmp = right1[j] + p[i];
if (0 < tmp)
{
right1[j] = tmp;
p[i] = 0;
break;
}
else if (0 == tmp)
{
right_num--;
p[i] = 0;
break;
}
else
{
right_num--;
p[i] = tmp;
}
}
if(p[i] < 0)
alive++;
}
}
}
printf("%d\n",alive + right_num);
cleanup:
system("pause");
return 0;
}
荒岛逃生游戏(C语言)
最新推荐文章于 2025-04-29 21:54:31 发布