悬关 72pts WA#3 求调
查看原帖
悬关 72pts WA#3 求调
677609
Vct14楼主2024/7/9 09:34
#include<bits/stdc++.h>
using namespace std;
#define int long long

const int N=1e5+2;
int key[N]; 
int wrong[N];

signed main(){
	int n,k,v;
	cin>>n>>k;
	for(int i=1; i<=n; i++){
		cin>>v;
		key[v]=i;
	} 
	int nk=1;
	for(int i=1; i<=min(k,n); i++){
		if(nk>key[i]) wrong[i]+=wrong[i-1]+n-nk+key[i];
		else wrong[i]=wrong[i-1]+key[i]-nk;
		nk=key[i];
	}
	int c=n-nk+1;if(nk==1) c=0;
	int ans=wrong[n]*(k/n)+wrong[k%n]+c*(k/n-1);
	if(k%n) ans+=c;
	cout<<ans;
	return 0;
}
2024/7/9 09:34
加载中...