性感代码,玄关求调
查看原帖
性感代码,玄关求调
938212
OMG_NOIP楼主2024/3/28 09:37
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll INF=0x3f3f3f3f3f3f3f;
using namespace std;
ll c,s,r;
struct Point{
	ll L,R,minn,lz;
}po[1000005];
void build(ll p,ll x,ll y){
	po[p]={x,y,s,0};
	if(x==y)return;
	ll mid=(x+y)>>1;
	build(p<<1,x,mid);
	build(p<<1|1,mid+1,y);
}
void uplz(ll p,ll k){
	po[p].minn+=k;
	po[p].lz+=k;
}
void pushdown(ll p){
	if(po[p].lz!=0){
		uplz(p<<1,po[p].lz);
		uplz(p<<1|1,po[p].lz);
		po[p].lz==0;
	}
}
void modify(ll p,ll x,ll y,ll k){
//	cout<<"L = "<<po[p].L<<"   R = "<<po[p].R<<endl;
	if(po[p].R<x||po[p].L>y)return;
	if(po[p].L>=x&&po[p].R<=y)return uplz(p,k);
	pushdown(p);
	modify(p<<1,x,y,k);
	modify(p<<1|1,x,y,k);	
	po[p].minn=min(po[p<<1].minn,po[p<<1|1].minn);
}
ll query(ll p,ll x,ll y){
//	cout<<"L = "<<po[p].L<<"   R = "<<po[p].R<<endl;
	if(po[p].R<x||po[p].L>y)return INF;
	if(po[p].L>=x&&po[p].R<=y)return po[p].minn;
	pushdown(p);
	ll res=INF;
	res=min(res,query(p<<1,x,y));
	res=min(res,query(p<<1|1,x,y));
	return res;
}
signed main(){
	ios::sync_with_stdio(false);
	cin>>c>>s>>r;
	build(1,1,c);
	while(r--){
		ll x,y,w;
		cin>>x>>y>>w;
		if(query(1,x,y-1)>=w){
			cout<<"T"<<endl;
			modify(1,x,y-1,-w);
			continue;
		}
		cout<<"N"<<endl;
	}
	return 0;	
}
2024/3/28 09:37
加载中...