QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#558565 | #8672. 排队 | Idtwtei | 0 | 124ms | 28560kb | C++20 | 2.0kb | 2024-09-11 16:51:03 | 2024-09-11 16:51:04 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define pii pair<int,int>
#define fi first
#define se second
const int N=1e6+100,INF=1e9;
#define gc getchar()
#define rd read()
inline int read(){
int x=0,f=0; char c=gc;
for(;c<'0'||c>'9';c=gc) f|=(c=='-');
for(;c>='0'&&c<='9';c=gc) x=(x<<1)+(x<<3)+(c^48);
return f?-x:x;
}
int n,m,ans[N],x[N],y[N];
vector<pii> q[N];
#define lc (id<<1)
#define rc (id<<1|1)
#define mid (l+r>>1)
struct TREE{ int mn,mx,atag; }t[N<<2];
void pushup(int id){ t[id].mn=min(t[lc].mn,t[rc].mn),t[id].mx=max(t[lc].mx,t[rc].mx); }
void add0(int id,int v){ t[id].mn+=v,t[id].mx+=v,t[id].atag+=v; }
void spread(int id){ int &v=t[id].atag; if(v!=0) add0(lc,v),add0(rc,v),v=0; }
void bui(int id,int l,int r){
t[id]={INF,-INF,0}; if(l==r) return;
bui(lc,l,mid),bui(rc,mid+1,r);
}
void chg(int id,int l,int r,int ql,int v){
if(l==r) return t[id].mn=t[id].mx=v,void(); spread(id);
ql<=mid?chg(lc,l,mid,ql,v):chg(rc,mid+1,r,ql,v); pushup(id);
}
void add(int id,int l,int r,int ql,int qr,int v){
if(ql<=l&&r<=qr) return add0(id,v); spread(id);
if(ql<=mid) add(lc,l,mid,ql,qr,v);
if(qr>=mid+1) add(rc,mid+1,r,ql,qr,v);
pushup(id);
}
int ask(int id,int l,int r,int ql){
if(l==r) return t[id].mn; spread(id);
return ql<=mid?ask(lc,l,mid,ql):ask(rc,mid+1,r,ql);
}
int ask0(int id,int l,int r,int v){
if(l==r) return t[id].mn<=v?l:-1; spread(id);
return t[rc].mx>=v?ask0(rc,mid+1,r,v):ask0(lc,l,mid,v);
}
int ask1(int id,int l,int r,int v){
if(l==r) return t[id].mn>=v?l:-1; spread(id);
return t[lc].mn<=v?ask1(lc,l,mid,v):ask1(rc,mid+1,r,v);
}
#undef lc
#undef rc
#undef mid
int main(){
n=rd,m=rd;
for(int i=1;i<=n;++i) x[i]=rd,y[i]=rd;
for(int i=1,l,r;i<=m;++i) l=rd,r=rd,q[r].pb({l,i});
bui(1,1,n);
for(int i=1,l,r;i<=n;++i){
chg(1,1,n,i,0);
l=ask1(1,1,n,y[i]),r=ask0(1,1,n,x[i]);
if(l!=-1&&r!=-1) add(1,1,n,ask1(1,1,n,y[i]),ask0(1,1,n,x[i]),1);
for(auto [l,id]:q[i]) ans[id]=ask(1,1,n,l);
}
for(int i=1;i<=m;++i) printf("%d\n", ans[i]);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 2ms
memory: 10016kb
input:
3 3 0 0 1 2 0 2 1 1 1 3 2 3
output:
1 1 0
result:
wrong answer 2nd numbers differ - expected: '3', found: '1'
Subtask #2:
score: 0
Wrong Answer
Test #12:
score: 0
Wrong Answer
time: 103ms
memory: 28560kb
input:
200000 200000 3 6 3 3 6 10 1 7 2 7 6 9 4 6 3 4 0 8 0 6 3 5 3 4 1 8 7 8 4 5 0 3 1 5 2 9 1 2 1 2 3 4 5 7 6 10 3 9 4 7 1 6 2 6 1 7 2 5 1 7 6 8 1 1 0 7 7 8 0 9 1 7 3 8 3 7 1 2 4 8 5 6 0 6 5 6 2 7 2 6 0 6 0 6 1 7 2 5 0 3 0 3 7 10 3 8 0 2 3 4 3 7 4 9 0 6 4 7 2 6 8 10 2 10 4 10 3 3 2 6 4 5 3 9 1 8 1 2 2 9 ...
output:
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ...
result:
wrong answer 362nd numbers differ - expected: '11', found: '10'
Subtask #3:
score: 0
Wrong Answer
Test #22:
score: 0
Wrong Answer
time: 124ms
memory: 26424kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 0 0 9 0 10 0 0 0 0 0 13 0 14 0 0 0 16 0 17 0 18 0 19 0 0 0 21 0 22 0 23 0 0 0 0 0 0 0 0 0 28 0 0 0 30 0 31 0 32 0 33 0 34 0 35 0 0 0 0 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 0 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 0 0 59 0 60 0 0 0 0 ...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
wrong answer 1st numbers differ - expected: '19141', found: '1'
Subtask #4:
score: 0
Wrong Answer
Test #32:
score: 0
Wrong Answer
time: 104ms
memory: 26700kb
input:
200000 200000 0 200000 1 200000 1 200000 0 200000 0 200000 1 200000 1 200000 1 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 0 200000 0 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 1 200000 1 200000 1 200000 1 200000 0 200000 0 200000 1 200000 2 200000 1 200000 2 20000...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
wrong answer 1st numbers differ - expected: '71224', found: '0'
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%