直接暴力了.
每次对boxes[i] 和 boxes[i + 1] 减去两者较小值, 如果减完后boxes[i] 不是0 则不能逃出迷宫.
#include <iostream>
#include <cstdio>
#include <memory.h>
using namespace std;
const int maxn = 1000001;
int boxes[maxn], n;
int main(){
int T;
scanf("%d",&T);
while (T--){
scanf("%d", &n);
for (int i = 0; i < n; ++i){
scanf("%d", &boxes[i]);
}
int f = 0;
for (int i = 0; i < n - 1; ++i){
int minv = min(boxes[i], boxes[i + 1]);
boxes[i] -= minv;
boxes[i + 1] -= minv;
if(boxes[i]){
f = 1;
break;
}
}
if(f || boxes[n - 1]){
printf("I will never go out T_T\n");
}else{
printf("yeah~ I escaped ^_^\n");
}
}
return 0;
}