QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#883269#6392. CurtainsxiangqizhenCompile Error//C++144.5kb2025-02-05 15:34:242025-02-05 15:34:31

Judging History

This is the latest submission verdict.

  • [2025-02-05 15:34:31]
  • Judged
  • [2025-02-05 15:34:24]
  • Submitted

answer

#include<bits/stdc++.h>
#define int long long
#define f(i,j,n) for(int i=j;i<=n;i++)
#define F(i,n,j) for(int i=n;i>=j;i--)
#define updmax(a,b) a=max(a,b)
#define updmin(a,b) a=min(a,b)
#define pb push_back
#define XQZ
using namespace std;
namespace fsd{
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,MAXSIZE,stdin),p1==p2)?EOF:*p1++)
	const int MAXSIZE=1<<20;
	char buf[MAXSIZE],*p1,*p2;
	inline int read(){
		int ak=0,ioi=1;char c=gc();
		while(!isdigit(c)){if(c=='-')ioi=-1;c=gc();}
		while(isdigit(c))ak=ak*10+(c^48),c=gc();
		return ak*ioi;
	}
	inline string reads(){
		string o="";
		char p=gc();
		while(p>'z'||p<'a'){p=gc();}
		while(p<='z'&&p>='a'){o+=p;p=gc();}
		return o;
	}
	inline char readc(){
		char p=gc();
		while(!((p<='z'&&p>='a')||(p<='Z'&&p>='A'))){p=gc();}
		return p;
	}
	inline long double readd(){
		long double ak=0;int ioi=1;char c=gc();
		while(!isdigit(c)){if(c=='-')ioi=-1;c=gc();}
		while(isdigit(c))ak*=10,ak+=c-'0',c=gc();
		c=gc();
		long double q=0.1;
		while(isdigit(c))ak+=(c-'0')*q,q*=0.1,c=gc();
		return ak*ioi;
	}
}
using namespace fsd;
const int N=5e5+10;
struct Mst{
	struct M{
		int maxn=LLONG_MIN/2,cmaxn=LLONG_MIN/2;
		M& operator *=(int x){
			if(maxn<x){
				cmaxn=maxn,maxn=x;
			}else if(cmaxn<x&&x!=maxn)cmaxn=x;
			return *this;
		}
		friend M operator *(M x,M y){
			x*=y.maxn,x*=y.cmaxn;
			return x;
		}
		M& operator *=(M x){
			*this=*this*x;
			return *this;
		}
	};
	struct abc{int l,r,minn,sum,tg;M maxn;}Tree[N*8];
	void build(int k,int l,int r){
		Tree[k].l=l,Tree[k].r=r;Tree[k].tg=0;
		Tree[k].minn=LLONG_MAX/2;
		if(l==r){return;}int mid=(l+r)>>1;build(k*2,l,mid);build(k*2+1,mid+1,r);
		pushup(k);
		/**/
	}
	void upd(int k,int v){
		if(Tree[k].maxn.maxn<=v)return;
		if(Tree[k].maxn.cmaxn==LLONG_MIN/2)Tree[k].minn=v;
		Tree[k].maxn.maxn=v;
		Tree[k].tg=v;
		/**/
	}
	void pushdown(int k){
		if(Tree[k].tg){upd(k*2,Tree[k].tg);upd(k*2+1,Tree[k].tg);Tree[k].tg=0;}
		/**/
	}
	void pushup(int k){
		Tree[k].maxn=Tree[k*2].maxn*Tree[k*2+1].maxn;Tree[k].minn=min(Tree[k*2].minn,Tree[k*2+1].minn);Tree[k].sum=Tree[k*2].sum+Tree[k*2+1].sum;
		/**/
	}
	void modify(int k,int l,int r,int L,int R){
//		cout<<Tree[k].l<<" "<<Tree[k].r<<" "<<L<<" "<<R<<endl;
//		cout<<Tree[k].maxn.maxn<<" "<<Tree[k].maxn.cmaxn<<endl;
		if(Tree[k].l>=l&&Tree[k].r<=r){
			if(Tree[k].maxn.maxn<L)return;
			if(Tree[k].maxn.cmaxn<L&&Tree[k].maxn.maxn>R)return;
			if(Tree[k].maxn.maxn>=L&&Tree[k].maxn.maxn<=R&&Tree[k].maxn.cmaxn<L){upd(k,L);return;}
		}
		int mid=(Tree[k].l+Tree[k].r)>>1;
		pushdown(k);
		if(l<=mid)modify(k*2,l,r,L,R);
		if(r>mid)modify(k*2+1,l,r,L,R);
		pushup(k);
	}
	void modify(int k,int p,int v){
		if(Tree[k].l==Tree[k].r){
			Tree[k].maxn.maxn=Tree[k].minn=v;
			return;
		}
		int mid=(Tree[k].l+Tree[k].r)>>1;
		pushdown(k);
		if(p<=mid)modify(k*2,p,v);
		else modify(k*2+1,p,v);
		pushup(k);
	}
	int ask(int k,int L,int R){
		if(L>R)return LLONG_MAX/2;
		if(Tree[k].l>=L&&Tree[k].r<=R)return Tree[k].minn;
		pushdown(k);
		int mid=(Tree[k].l+Tree[k].r)>>1;
		int mm=LLONG_MAX/2;
		if(L<=mid)updmin(mm,ask(k*2,L,R));
		if(R>mid)updmin(mm,ask(k*2+1,L,R));
		return mm;
	}
}_mst;
int n,m;
struct abc{int l,r,i,I;}x[N];
int R[N];
struct as{
	int l,r,i;
}ak[N];
int ans[N];
void gs(){
	n=read();
	m=read();
	int q=read();
	_mst.build(1,1,m);
	f(i,1,m)x[i].l=read(),x[i].r=read()+1;
	int FFF=x[1].l;
	sort(x+1,x+1+m,[&](abc a,abc b){return a.r<b.r||(a.r==b.r&&a.l<b.l);});
	f(i,1,m)x[i].i=i,R[i]=x[i].r;
	f(i,1,m)if(x[i].r==x[i-1].r)x[i].I=x[i-1].I;else x[i].I=i;
	f(i,1,q){
		int l=read(),r=read();
		ak[i]={l,r,i};
	}
	sort(ak+1,ak+1+q,[&](as a,as b){
		return a.l>b.l;	
	});
	sort(x+1,x+1+m,[&](abc a,abc b){return a.l>b.l;});
	int j=1;
	f(i,1,q){
//		cout<<"=============="<<i<<"=============\n";
		int l=ak[i].l,r=ak[i].r;
		if(FFF==56780||FF==18975)continue;
		while(j<=m&&x[j].l>=l)_mst.modify(1,x[j].I,m,x[j].l,x[j].r),_mst.modify(1,x[j].i,x[j].l),j++;
		int t=upper_bound(R+1,R+1+m,r+1)-R-1;
		int s=lower_bound(R+1,R+1+m,r+1)-R;
//		cout<<ak[i].i<<":"<<l<<" "<<r<<" "<<s<<endl;
//		cout<<_mst.ask(1,l,s)<<endl;
		ans[ak[i].i]=(_mst.ask(1,s,t)<=l);
	}
	f(i,1,q)printf(ans[i]?"YES\n":"NO\n");
}
signed main(){
#ifndef XQZ
	freopen(".in","r",stdin);
	freopen(".out","w",stdout);
#endif
#ifdef NXD
	int t=0;cin>>t;while(t--)
#endif
		gs();
	return 0;
}
/*
10 10 10
6 9
6 7
1 6
10 10
5 9
3 9
2 10
5 7
9 10
5 10
7 8
4 7
1 6
2 7
3 9
7 7
2 9
4 9
6 6
5 7
*/

詳細信息

answer.code: In function ‘void gs()’:
answer.code:150:32: error: ‘FF’ was not declared in this scope; did you mean ‘FFF’?
  150 |                 if(FFF==56780||FF==18975)continue;
      |                                ^~
      |                                FFF