90分乱搞做法求助
查看原帖
90分乱搞做法求助
494699
卷王慢即快楼主2023/4/3 19:21
#include <bits/stdc++.h>
using namespace std;
int T, n;
int a[1000007];
inline int read() {
	int x = 0, f = 1;
	char ch = getchar();
	while(ch < '0' || ch > '9') {
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9') {
		x = (x << 1) + (x << 3) + (ch ^ 48);
		ch = getchar();
	}
	return x * f;
}
int main() {
	T = read();
	while(T--) {
		n = read();
		for(int i = 1; i <= n; i++)
			a[i] = read();
		int front = 0, back = 0;
		for(int i = 1; i <= n; i++)
			if(a[i] == i) front++;
			else break;
		for(int i = n; i >= 1; i--)
			if(a[i] == i) back++;
			else break;
		printf("%d\n", max(n - front - back, 0));
	}
	return 0;
}
2023/4/3 19:21
加载中...