Cyclic Array WA12 help

WA 12

#include <bits/stdc++.h>
using namespace std;
const int kmaxn=2e5;
int klg=18;
int n,k,x[kmaxn*2+5],f[kmaxn*2+5][klg+5];
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>x[i];
		x[n+i]=x[i];
	}
	int l=1,r=1,sum=0;
	while(l<=n*2){
		while(r<=n*2&&sum+x[r]<=k){
			sum+=x[r];
			r++;
		}
		f[l][0]=r;
		sum-=x[l];
		l++;
	}
	f[n*2+1][0]=n*2+1;
	for(int j=1;j<=klg;j++){
		for(int i=1;i<=n*2;i++){
			f[i][j]=f[f[i][j-1]][j-1];
		}
		f[n*2+1][j]=n*2+1;
	}
	int ans=n;
	for(int i=1;i<=n;i++){
		int curans=0,curpos=i;
		for(int j=klg;j>=0;j--){
			if(f[curpos][j]>=i+n){
				curans+=(1<<j);
				curpos=f[curpos][j];
			}
		}
		ans=min(ans,curans+1);
	}
	cout<<ans;
	return 0;
}

题面

屏幕截图 2025-04-21 211449
屏幕截图 2025-04-21 211509
屏幕截图 2025-04-21 211524

开long long试试

k是1~1e18

样例都没过

你确定这不会MLE?我devc++测试爆了

屏幕截图 2025-04-21 212224

不会