问玄3关
查看原帖
问玄3关
1021365
Crab_Tang楼主2024/7/13 15:25
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
int n;
int a[N];
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",a+i);
	if(a[n]!=n){
		printf("-1\n");
		return 0;
	}
	/* 1
	int cnt=0,maxp=-1e9;
	for(int i=1;i<=n;++i)
		if(a[i]>maxp)
			maxp=a[i];
		else
			++cnt;
	*/
	
	int cnt=0,minp=1e9;
	for(int i=n;i>=1;--i)
		if(a[i]<minp)
			minp=a[i];
		else
			++cnt;
	
	printf("%d\n",cnt);
	return 0;
}

为何第一个(注释里面的)错了而第二个对了

2024/7/13 15:25
加载中...