求助(悬一人两关)
查看原帖
求助(悬一人两关)
1122479
xxs12345楼主2024/3/7 16:58
#include<bits/stdc++.h>
using namespace std;
long long n,q,o[100001],jl;
long long k[100001],x,last;
long long cf[100001]; 
long long a;
int main()
{
	std::cin.tie(0);
	std::cout.tie(0);
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>o[i];
		k[o[i]]=i;
	}
	for(int i=1;i<=n;i++){
		if(k[i]<last) jl++,x++;
		else{
			jl=jl+k[i]-x;
			last=k[i];
			x++;
		}			
	}
	cout<<jl<<" ";
	for(int i=1;i<=q;i++){
		jl=0,x=0,last=0;
		cin>>a;
		k[o[a]]=0;
		for(int j=a;j<=n;j++)k[o[j]]--;
		for(int j=1;j<=n;j++){
			if(k[j]>=1){
				if(k[j]<last) jl++,x++;
				else{
					jl=jl+k[j]-x;
					last=k[j];
					x++;
				}
			}			
		}
		cout<<jl<<" ";
	}	
	return 0;
}
2024/3/7 16:58
加载中...