记录编号 268293 评测结果 WWAWWWWWWWAW
题目名称 售票系统 最终得分 16
用户昵称 GravatarSPA 是否通过 未通过
代码语言 C++ 运行时间 0.888 s
提交时间 2016-06-12 13:54:05 内存使用 2.15 MiB
显示代码纯文本
#include<bits/stdc++.h>
namespace X{
	using namespace std;
	#define FO(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
	#define FC fclose(stdin),fclose(stdout)
	#define Max(a,b) ((a)>(b)? (a):(b))
	#define Min(a,b) ((a)<(b)? (a):(b))
	inline long long QR(){
		char _ch;
		bool _minus=0;
		long long _num=0;
		while(_ch=getchar(),_ch<'-'||_ch>'9');
		if(_ch=='-') _minus=1,_ch=getchar();
		while(_num=_num*10+_ch-48,_ch=getchar(),_ch>='0'&&_ch<='9');
		if(_minus) return -_num;
		return _num;
	}
	inline void QW(long long _num,char _ch){
		if(_num<0) _num=-_num,putchar('-');
		int __cnt=0;
		string _str;
		while(_str[++__cnt]=_num%10+'0',_num/=10);
		while(putchar(_str[__cnt]),--__cnt);
		putchar(_ch);
	}
}
using namespace X;
void work();
int main(){
	FO(railway);
	work();
	FC;
	return 0;
}

const int ma=((int)6e4<<2)+10;
int a[ma]={0},lazy[ma]={0};

void build(int s,int t,int x,int rt,int l,int r){
	if(s<=l&&t>=r){
		a[rt]+=x,lazy[rt]+=x;
		return;
	}
	int mid=(l+r)>>1;
	if(s<=mid) build(s,t,x,2*rt,l,mid);
	if(t>mid) build(s,t,x,2*rt+1,mid+1,r);
	a[rt]=Max(a[2*rt],a[2*rt+1]);
}

int find(int s,int t,int rt,int l,int r){
	if(s<=l&&t>=r) return a[rt];
	int mid=(l+r)>>1;
	if(t<=mid) return find(s,t,2*rt,l,mid);
	if(s>mid) return find(s,t,2*rt+1,mid+1,r);
	return Max(find(s,t,2*rt,l,mid),find(s,t,2*rt+1,mid+1,r));
}

void work(){
	int c=QR(),s=QR(),r=QR();
	for(int i=1;i<=r;++i){
		int o=QR(),d=QR(),n=QR();
		if(s-find(o,d,1,1,c)>=n){
			printf("YES\n");
			build(o,d,n,1,1,c);
		}
		else printf("NO\n");
	}
}