$TLE$萌新刚学OI一飞秒,求调
查看原帖
$TLE$萌新刚学OI一飞秒,求调
1073741
UKE_bound楼主2024/10/20 18:42
#include<bits/stdc++.h>
using namespace std;
#define int long long
int h[200000],n,q,w;
int pow(int k){
	int d=2;
	int result=1;
    while(k>0){
        if(k&1){
            result=result*d;
        }
        d=d*d;
        k>>=1;
    }
    return result;
}
/*void showh(){
	cout<<"h[i]:";
	for(int i=1;i<=n;i++){
		cout<<h[i]<<" ";
	}
	cout<<endl;
}*/
signed main(){
	cin>>n>>q>>w;
	const int W=w;
	for(int i=1;i<=n;i++){
		cin>>h[i];
	}
	while(q--){
		w=W;
		int l,r,d;
		cin>>l>>r>>d;
		for(int i=l;i<=r;i++){
			h[i]+=d;
		}
		//showh();
		int k=0;//承受攻击数 
		d=1;//当前攻击的垃圾桶 
		while(w>0){
			w-=h[d]*pow(k/n);
			k++;
			d++;
			if(d==n+1)d=1;
		}
		k--;
		cout<<k<<endl;
	}
	return 0;
}
2024/10/20 18:42
加载中...