记录编号 |
268293 |
评测结果 |
WWAWWWWWWWAW |
题目名称 |
售票系统 |
最终得分 |
16 |
用户昵称 |
SPA |
是否通过 |
未通过 |
代码语言 |
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");
}
}