QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#33661 | #1429. Hit | DerekFeng | WA | 68ms | 7984kb | C++ | 2.0kb | 2022-06-04 15:46:17 | 2022-06-04 15:46:41 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int n,N,l[100004],r[100004];
vector<int>all,grans;
bool cmp(int a,int b){return r[a]<r[b];}
int s[200004],t;
void greedy(){
vector<int>ord;grans.clear();
for(int i=1;i<=n;i++)ord.push_back(i);
sort(ord.begin(),ord.end(),cmp);
grans.push_back(0);
for(auto x:ord)if(grans.back()<l[x])grans.push_back(r[x]);
for(int i=1;i<=N;i++)s[i]=0;
for(auto x:grans)s[x]++;
for(int i=1;i<=N;i++)s[i]+=s[i-1];
t=0;for(int i=1;i<=n;i++)t=max(t,s[r[i]]-s[l[i]-1]);
}
int w[200004][20];
int rd[200004],ld[200004];
bool check(){
for(int i=0;i<=N+1;i++)rd[i]=N+1,ld[i]=N+1;
for(int i=1;i<=N;i++){
rd[l[i]]=min(rd[l[i]],r[i]);
ld[r[i]]=min(ld[r[i]],l[i]);
}
for(int i=N-1;i;i--)ld[i]=min(ld[i+1],ld[i]);
deque<int>dq;bool exi=0;
for(int i=N;~i;i--){
while(!dq.empty()&&dq.back()>rd[i+1])
dq.pop_back();
memset(w[i],0,sizeof(w[i]));
w[i][0]=(dq.empty()||!exi)?0:dq.back();
for(int j=1;j<20;j++)if(w[i][j-1])
w[i][j]=w[w[i][j-1]][j-1];
int f=i;
for(int j=0;j<20;j++)if(((t-1)>>j)&1)f=w[f][j];
if(dq.empty()){
if(!exi)dq.push_front(i);
}else if(!f)dq.push_front(i);
else if(ld[f]>i)dq.push_front(i);
exi|=rd[i]<=N;
}
if(dq.empty()||dq.front()!=0)return 0;
vector<int>ans;
int x=w[0][0];
while(x)ans.push_back(x),x=w[x][0];
printf("%d %d ",t-1,ans.size());
for(auto x:ans)printf("%d ",all[x-1]);
return 1;
}
void sol(){
scanf("%d",&n),all.clear();
for(int i=1;i<=n;i++){
scanf("%d%d",&l[i],&r[i]);
all.push_back(l[i]),all.push_back(r[i]+1);
}
sort(all.begin(),all.end());
all.erase(unique(all.begin(),all.end()),all.end());
for(int i=1;i<=n;i++){
l[i]=lower_bound(all.begin(),all.end(),l[i])-all.begin()+1;
r[i]=lower_bound(all.begin(),all.end(),r[i]+1)-all.begin();
}
N=all.size();
greedy();
if(t==1||!check()){
printf("%d %d ",t,grans.size()-1);
for(auto x:grans)if(x)printf("%d ",all[x-1]);
}
puts("");
}
int main(){
int tc;scanf("%d",&tc);
while(tc--)sol();
}
详细
Test #1:
score: 100
Accepted
time: 3ms
memory: 7984kb
input:
4 4 0 1 2 3 4 5 3 5 5 0 70 0 10 20 30 40 50 60 70 8 -1 7 -2 -1 -9 -7 -8 9 -9 -7 -2 4 -7 4 3 9 5 0 1 0 2 2 3 3 5 4 5
output:
1 3 0 2 4 4 4 0 20 40 60 2 3 -9 -1 8 2 3 0 3 4
result:
ok ok, tt = 4
Test #2:
score: 0
Accepted
time: 2ms
memory: 5756kb
input:
1 1 0 1
output:
1 1 0
result:
ok ok, tt = 1
Test #3:
score: 0
Accepted
time: 0ms
memory: 5876kb
input:
3 1 -1000000000 1000000000 1 -1000000000 -999999999 1 999999999 1000000000
output:
1 1 -1000000000 1 1 -1000000000 1 1 999999999
result:
ok ok, tt = 3
Test #4:
score: 0
Accepted
time: 61ms
memory: 5840kb
input:
100000 1 -755794993 -744839313 1 638832683 645984490 1 333736843 342792055 1 -412526164 -400411740 1 193156287 205856204 1 266085745 268256106 1 789502967 806620391 1 85305828 86560242 1 -655573585 -644094805 1 517734490 518776542 1 -966001098 -958188900 1 -780504491 -762439365 1 -896592598 -8804653...
output:
1 1 -755794993 1 1 638832683 1 1 333736843 1 1 -412526164 1 1 193156287 1 1 266085745 1 1 789502967 1 1 85305828 1 1 -655573585 1 1 517734490 1 1 -966001098 1 1 -780504491 1 1 -896592598 1 1 -557316732 1 1 664292314 1 1 -629158110 1 1 -202815742 1 1 -640869188 1 1 -229963066 1 1 -...
result:
ok ok, tt = 100000
Test #5:
score: 0
Accepted
time: 62ms
memory: 5832kb
input:
100000 1 -392749917 -319069731 1 761382535 804248178 1 -858764838 -819815600 1 -87503649 -20800126 1 -69252318 64456029 1 -848092983 -666742404 1 -659061625 -620054847 1 -982031817 -883932130 1 -47104919 97672798 1 -494834028 -456770262 1 496748206 692802903 1 572757539 669651153 1 -484466016 -41314...
output:
1 1 -392749917 1 1 761382535 1 1 -858764838 1 1 -87503649 1 1 -69252318 1 1 -848092983 1 1 -659061625 1 1 -982031817 1 1 -47104919 1 1 -494834028 1 1 496748206 1 1 572757539 1 1 -484466016 1 1 729473771 1 1 -428804236 1 1 212864606 1 1 -381428604 1 1 813986190 1 1 -573957931 1 1 -...
result:
ok ok, tt = 100000
Test #6:
score: 0
Accepted
time: 68ms
memory: 5868kb
input:
100000 1 -422738609 -95619025 1 496655203 761501973 1 -253341552 895113150 1 -213934938 560617332 1 257193179 510136024 1 -684784337 -650911183 1 -999254900 62633326 1 -627557633 641989470 1 -682383675 66116491 1 -859630523 340664034 1 -422590930 433070710 1 259879968 316877801 1 -90014752 991378355...
output:
1 1 -422738609 1 1 496655203 1 1 -253341552 1 1 -213934938 1 1 257193179 1 1 -684784337 1 1 -999254900 1 1 -627557633 1 1 -682383675 1 1 -859630523 1 1 -422590930 1 1 259879968 1 1 -90014752 1 1 -789762673 1 1 -750992244 1 1 -964513526 1 1 -723869577 1 1 44144467 1 1 -550241786 1 ...
result:
ok ok, tt = 100000
Test #7:
score: 0
Accepted
time: 56ms
memory: 5836kb
input:
100000 1 -146170891 -135832850 1 -758721094 -739814745 1 434418655 436843128 1 584625787 597671579 1 -54920782 -48746711 1 -890924962 -874340357 1 -955254050 -945006677 1 276114326 279390556 1 -291805472 -288200984 1 673823575 685514644 1 -43237398 -31640268 1 -239622315 -224829882 1 -596965402 -595...
output:
1 1 -146170891 1 1 -758721094 1 1 434418655 1 1 584625787 1 1 -54920782 1 1 -890924962 1 1 -955254050 1 1 276114326 1 1 -291805472 1 1 673823575 1 1 -43237398 1 1 -239622315 1 1 -596965402 1 1 -902355499 1 1 262300444 1 1 -172688572 1 1 289036433 1 1 106949065 1 1 -733199280 1 1 -...
result:
ok ok, tt = 100000
Test #8:
score: 0
Accepted
time: 57ms
memory: 5732kb
input:
100000 1 -938525664 -817076126 1 -932701889 -823854498 1 -198817321 -90954343 1 852989237 895167117 1 -657597128 -592296022 1 -189337058 -60845257 1 -308394755 -143079067 1 -798793040 -658589397 1 587269730 632505978 1 463959892 651681553 1 210139744 354710208 1 -738322653 -579254528 1 -473167271 -4...
output:
1 1 -938525664 1 1 -932701889 1 1 -198817321 1 1 852989237 1 1 -657597128 1 1 -189337058 1 1 -308394755 1 1 -798793040 1 1 587269730 1 1 463959892 1 1 210139744 1 1 -738322653 1 1 -473167271 1 1 -719122089 1 1 -135498368 1 1 798473093 1 1 772169233 1 1 732432771 1 1 -164220287 1 1...
result:
ok ok, tt = 100000
Test #9:
score: 0
Accepted
time: 55ms
memory: 5824kb
input:
100000 1 -124550996 175843021 1 -993480749 369513273 1 -472345946 866834459 1 51146719 619481540 1 -953985291 -388861986 1 30060232 86153621 1 397966610 670657620 1 228037899 527397835 1 -328812046 777147616 1 528770087 999819348 1 -443642177 430027557 1 -985366041 937429463 1 286165886 375753871 1 ...
output:
1 1 -124550996 1 1 -993480749 1 1 -472345946 1 1 51146719 1 1 -953985291 1 1 30060232 1 1 397966610 1 1 228037899 1 1 -328812046 1 1 528770087 1 1 -443642177 1 1 -985366041 1 1 286165886 1 1 -553313072 1 1 -22755036 1 1 -586567462 1 1 384242088 1 1 59282828 1 1 -787530941 1 1 9754...
result:
ok ok, tt = 100000
Test #10:
score: -100
Wrong Answer
time: 38ms
memory: 7888kb
input:
18139 4 -336270587 -330557331 -252002330 -239258910 -186846904 -186440987 848243159 868102416 3 -195461235 -180651308 -250893512 -232183484 741194405 748153230 1 -583374820 -573301094 2 -289487516 -278362438 -617984192 -600701104 3 361103576 377771047 -629713150 -625261223 760487909 765234419 2 -789...
output:
1 4 -336270587 -252002330 -186846904 848243159 1 3 -250893512 -195461235 741194405 1 1 -583374820 1 2 -617984192 -289487516 1 3 -629713150 361103576 760487909 1 2 -789944592 -103045325 1 1 756732794 1 4 -428947266 -243873198 439377407 512729535 1 3 -832490738 -677551837 366281659 1 6 -86981...
result:
wrong answer test 529: expected 1, found 2