水题。 注意理解题意,士兵只要编号是前边一个士兵编号加一就是正确的。有一个坑点,那就是如果全都没出错,那么一定是第一个士兵出错了。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cmath>
using namespace std;
int a[100100];
int main() {
int T;
scanf("%d", &T);
int k;
for(k = 1; k <= T; k++) {
int N;
scanf("%d", &N);
int i;
int flag = 0, ans;
for(i = 0; i < N; i++) {
scanf("%d", a + i);
if(flag == 0 && a[0] + i != a[i]) {
flag = 1;
ans = i;
}
}
if(!flag) ans = 0;
printf("Case #%d: %d\n", k, ans + 1);
}
return 0;
}