QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#557615 | #8672. 排队 | piggy123 | 0 | 98ms | 19336kb | C++20 | 3.7kb | 2024-09-11 10:32:04 | 2024-09-11 10:32:08 |
Judging History
answer
#include <bits/stdc++.h>
#define ll int
using namespace std;
struct B{
ll l,r,id;
}p[1000005],q[1000005];
struct node{
ll tag,mx;
}tree[4000005];
ll ans[4000005];
ll getpos(ll root,ll l,ll r,ll v,ll tg=0){
if (l==r)return l;
ll mid=(l+r)>>1;
tg+=tree[root].tag;
if (tree[root<<1].mx+tg+tree[root<<1].tag>v)return getpos(root<<1|1,mid+1,r,v,tg);
else return getpos(root<<1,l,mid,v,tg);
}
void add(ll root,ll l,ll r,ll L,ll R){
if (L<=l&&r<=R){
tree[root].tag++;
return;
}
ll mid=(l+r)>>1;
if (L<=mid)add(root<<1,l,mid,L,R);
if (R>mid)add(root<<1|1,mid+1,r,L,R);
tree[root].mx=max(tree[root<<1].mx,tree[root<<1|1].mx);
}
ll query(ll root,ll l,ll r,ll pos){
if (l==r)return tree[root].mx+tree[root].tag;
ll mid=(l+r)>>1;
if (pos<=mid)return tree[root].tag+query(root<<1,l,mid,pos);
else return tree[root].tag+query(root<<1|1,mid+1,r,pos);
}
int main(){
cin.tie(0);cout.tie(0);
ios::sync_with_stdio(false);
ll n,Q;
cin >> n >> Q;
for (ll i=1;i<=n;i++){
cin >> p[i].l >> p[i].r;
}
for (ll i=1;i<=Q;i++){
cin >> q[i].l >> q[i].r;
q[i].id=i;
}
sort(q+1,q+1+Q,[](B a,B b){
return a.r<b.r;
});
ll tp=0;
for (ll i=1;i<=n;i++){
ll lp=getpos(1,1,n,p[i].r),rp=getpos(1,1,n,p[i].l-1)-1;
add(1,1,n,lp,min(rp,i));
while (tp+1<=Q&&q[tp+1].r==i)++tp,ans[q[tp].id]=query(1,1,n,q[tp].l);
}
for (ll i=1;i<=Q;i++)cout<< ans[i]<<"\n";
return 0;
}
/*
■■■■■ ■■ ■■■ ■■■ ■ ■ ■ ■■■■ ■■■■
■ ■■ ■■ ■ ■■ ■ ■■ ■ ■ ■■ ■ ■■ ■■ ■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■■ ■■ ■■ ■ ■■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■■
■ ■ ■■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■■ ■ ■■■ ■ ■■■ ■■ ■■ ■■ ■■■
■■■■■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■ ■ ■■
■ ■■ ■■ ■■ ■■ ■■ ■■ ■■ ■ ■■ ■■
■ ■■ ■■■■ ■■■■ ■■ ■■ ■■■■■■ ■■■■
*/
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Memory Limit Exceeded
Test #1:
score: 10
Accepted
time: 1ms
memory: 7816kb
input:
3 3 0 0 1 2 0 2 1 1 1 3 2 3
output:
1 3 1
result:
ok 3 number(s): "1 3 1"
Test #2:
score: 0
Memory Limit Exceeded
input:
5000 5000 5 10 3 9 3 8 2 7 2 5 3 6 1 5 0 2 7 8 2 10 0 3 3 6 4 6 1 6 4 8 7 8 2 7 3 4 4 9 7 8 2 9 2 5 3 6 0 5 6 7 1 2 2 4 2 10 1 5 7 9 6 9 2 3 9 10 5 5 2 9 3 3 2 7 2 4 0 6 0 3 1 7 7 7 4 8 2 9 4 8 0 10 1 8 1 1 2 7 5 9 1 7 1 7 1 4 2 4 1 4 2 9 1 7 4 7 3 8 1 3 4 6 1 5 1 6 0 0 3 9 4 7 2 8 1 8 1 2 7 8 2 7 2...
output:
result:
Subtask #2:
score: 0
Memory Limit Exceeded
Test #12:
score: 0
Memory Limit Exceeded
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:
result:
Subtask #3:
score: 0
Wrong Answer
Test #22:
score: 0
Wrong Answer
time: 98ms
memory: 19336kb
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:
19141 39288 14841 58655 15427 4999 26338 93250 2828 78084 64070 55481 2565 15173 24866 57627 35887 51335 67552 44940 27730 24781 54502 26903 73199 7553 3836 41740 67889 104576 43523 3766 13007 31659 17264 85349 16595 28681 64012 56457 23856 47820 22752 86123 37679 44828 88810 36306 15843 33728 10005...
result:
wrong answer 9th numbers differ - expected: '2826', found: '2828'
Subtask #4:
score: 0
Memory Limit Exceeded
Test #32:
score: 15
Accepted
time: 94ms
memory: 18792kb
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:
71224 21392 65746 47218 62293 29293 146310 136621 165312 81582 25124 120262 104926 12518 90915 31784 50073 15588 1517 106447 92329 71506 16694 4846 38213 34902 133281 98867 697 26263 6631 173459 61316 71682 15564 112191 125788 15305 41840 30379 24107 17435 10898 115177 22279 37582 101778 120170 1264...
result:
ok 200000 numbers
Test #33:
score: 0
Memory Limit Exceeded
input:
200000 200000 5 200000 0 200000 1 200000 0 200000 2 200000 1 200000 0 200000 3 200000 4 200000 1 200000 0 200000 2 200000 1 200000 0 200000 0 200000 5 200000 2 200000 0 200000 2 200000 2 200000 0 200000 1 200000 3 200000 4 200000 2 200000 0 200000 5 200000 0 200000 3 200000 0 200000 0 200000 5 20000...
output:
result:
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%