这也是一道模拟题,WA了三次,少考虑了很多特殊情况。1、当只有一个箱子的情况,如果不等于0,则不行,等于0,则ok。2、多个箱子的时候,从前往后推,如果最后一个箱子的容量为0,则ok,否则,不行。
#include<stdio.h>
#include<stdlib.h>
int a[1000005];
int n,m;
int main(){
scanf("%d",&n);
while(n--){
scanf("%d",&m);
int i,j;
for(i=0;i<m;i++)
scanf("%d",&a[i]);
i=0;j=1;
if(m==1){
if(a[0]==0) printf("yeah~ I escaped ^_^\n");
else printf("I will never go out T_T\n");
}
else{
bool flag=false;
while(j<m){
if(a[i]==0){i++;j++;}
if(a[i]>a[j]){
flag=true;
break;
}
else{
a[j]-=a[i];
i++;
j++;
}
if(j==m){
if(a[i]!=0){
flag=true;
break;
}
}
}
if(flag)
printf("I will never go out T_T\n");
else
printf("yeah~ I escaped ^_^\n");
}
}
//system("pause");
return 0;
}