QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#423200 | #4427. Epidemic | MEKHANE | AC ✓ | 2667ms | 344344kb | C++14 | 1.4kb | 2024-05-27 21:31:05 | 2024-05-27 21:31:07 |
Judging History
answer
#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
const int N=1.5e6+5;
int T,n,m,las[N],vis[N],bj[N];
set<int> in[N],ot[N];
multiset<int> se;
vector<int> v[N];
void del(int u){
vis[u]=1;
for(auto x:v[u]) if(!bj[x]) se.erase(se.find(x));
for(auto v:ot[u]) if(!vis[v]){
in[v].erase(u);
if(in[v].empty()&&!vis[v]) del(v);
}ot[u].clear();
for(auto v:in[u]) if(!vis[v]) del(v);
in[u].clear();
}
void add(int u,int v){if(!vis[u]) in[v].insert(u),ot[u].insert(v);}
void sol(){
cin>>n>>m,iota(las+1,las+n+1,1); int tot=n,lans=0;
rep(i,1,n) v[i].push_back(i),se.insert(i);
auto dec=[&](int x){return (x-1+lans)%n+1;};
rep(i,1,m){
char o; cin>>o;
if(o=='K'){
int u=++tot,k,x; cin>>k;
rep(j,0,k-1) cin>>x,x=dec(x),v[u].push_back(x),add(las[x],u),las[x]=u,se.insert(x);
if(in[u].empty()) del(u);
}else if(o=='N'){
int p; cin>>p,p=dec(p);
if(!vis[las[p]]) del(las[p]);
}else if(o=='P'){int p; cin>>p,p=dec(p),se.erase(p),bj[p]=1;}
else if(o=='Q'){
int p; cin>>p,p=dec(p);
if(se.empty()) cout<<"TAK\n",lans=0;
else{
auto it=se.lower_bound(p);
if(it==se.end()) it=se.begin();
cout<<"NIE "<<(lans=*it)<<'\n';
}
}
}se.clear();
rep(i,1,tot) in[i].clear(),ot[i].clear(),vis[i]=bj[i]=0,v[i].clear();
}
int main(){
ios::sync_with_stdio(false);
cin>>T; while(T--) sol();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1473ms
memory: 213712kb
input:
5 100000 200000 K 87364 15686 92170 35439 66887 86777 14031 15309 28211 31250 42379 63714 84485 54399 89989 1904 13771 69090 65325 5301 49444 20135 60338 83926 69802 74082 94806 76677 96397 45310 95387 99242 17074 24563 92002 17501 80608 49242 17460 15024 82406 66086 44804 76674 81286 39612 80373 25...
output:
NIE 53312 NIE 39185 NIE 78351 NIE 95331 NIE 79209 NIE 33801 NIE 51733 NIE 76676 NIE 35219 NIE 80600 NIE 79771 NIE 58897 NIE 55869 NIE 75798 NIE 39279 NIE 89805 NIE 97214 NIE 85040 NIE 51997 NIE 64521 NIE 89567 NIE 17181 NIE 41815 NIE 29936 NIE 37055 NIE 57874 NIE 86535 NIE 19194 NIE 54627 NIE 75238 ...
result:
ok 500000 lines
Test #2:
score: 0
Accepted
time: 2131ms
memory: 295220kb
input:
1 500000 1000000 N 481744 Q 450025 N 55611 Q 122541 N 311121 Q 463654 N 385525 Q 437301 N 349043 Q 348074 K 487138 141126 175795 314408 270737 144112 42745 235955 119535 348883 312426 489800 211026 471001 174467 481954 458008 445242 434663 164648 68414 214512 268851 425765 422096 38347 78557 367491 ...
output:
NIE 450025 NIE 72566 NIE 36220 NIE 473521 NIE 321595 NIE 144933 NIE 9184 NIE 82088 NIE 498175 NIE 305892 NIE 101761 NIE 259248 NIE 19122 NIE 352554 NIE 463226 NIE 163114 NIE 39184 NIE 329766 NIE 155161 NIE 143793 NIE 431176 NIE 474442 NIE 465706 NIE 315051 NIE 423430 NIE 24057 NIE 91520 NIE 421905 N...
result:
ok 500000 lines
Test #3:
score: 0
Accepted
time: 526ms
memory: 229832kb
input:
1 500000 1000000 K 2 1 2 Q 1 K 2 1 2 Q 500000 K 2 2 3 Q 500000 K 2 3 4 Q 500000 K 2 4 5 Q 500000 K 2 5 6 Q 500000 K 2 6 7 Q 500000 K 2 7 8 Q 500000 K 2 8 9 Q 500000 K 2 9 10 Q 500000 K 2 10 11 Q 500000 K 2 11 12 Q 500000 K 2 12 13 Q 500000 K 2 13 14 Q 500000 K 2 14 15 Q 500000 K 2 15 16 Q 500000 K 2...
output:
NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 ...
result:
ok 500000 lines
Test #4:
score: 0
Accepted
time: 324ms
memory: 189572kb
input:
1 40000 1000000 K 2 11095 11120 Q 33358 K 2 8755 8762 Q 9002 K 2 38068 38080 Q 12904 N 39506 Q 33194 K 2 28493 28502 Q 30836 N 27400 Q 32926 K 2 6947 6980 Q 5502 K 2 25544 25558 Q 21601 N 19052 Q 21385 K 2 33719 33732 Q 7428 K 2 21560 21584 Q 35262 N 3629 Q 33491 K 2 9285 9311 Q 12571 N 31142 Q 39 K...
output:
NIE 33358 NIE 2360 NIE 15264 NIE 8458 NIE 39294 NIE 32220 NIE 37722 NIE 19323 NIE 708 NIE 8136 NIE 3398 NIE 36889 NIE 9460 NIE 9499 NIE 1918 NIE 10792 NIE 5406 NIE 11836 NIE 24715 NIE 32264 NIE 26042 NIE 133 NIE 12526 NIE 6331 NIE 10548 NIE 32772 NIE 2048 NIE 32879 NIE 12451 NIE 35616 NIE 26704 NIE ...
result:
ok 500000 lines
Test #5:
score: 0
Accepted
time: 700ms
memory: 239444kb
input:
1 140000 979994 K 2 69999 139998 Q 1 K 2 69997 139996 Q 140000 K 2 69996 139995 Q 140000 K 2 69995 139994 Q 140000 K 2 69994 139993 Q 140000 K 2 69993 139992 Q 140000 K 2 69992 139991 Q 140000 K 2 69991 139990 Q 140000 K 2 69990 139989 Q 140000 K 2 69989 139988 Q 140000 K 2 69988 139987 Q 140000 K 2...
output:
NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 ...
result:
ok 489997 lines
Test #6:
score: 0
Accepted
time: 849ms
memory: 344344kb
input:
1 500000 999998 K 2 249999 499998 Q 1 K 2 249997 499996 Q 500000 K 2 249996 499995 Q 500000 K 2 249995 499994 Q 500000 K 2 249994 499993 Q 500000 K 2 249993 499992 Q 500000 K 2 249992 499991 Q 500000 K 2 249991 499990 Q 500000 K 2 249990 499989 Q 500000 K 2 249989 499988 Q 500000 K 2 249988 499987 Q...
output:
NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 NIE 1 ...
result:
ok 499999 lines
Test #7:
score: 0
Accepted
time: 2667ms
memory: 315948kb
input:
1 500000 1000000 K 491799 259367 335786 265921 117853 378964 440906 184265 260415 290117 129200 300375 136031 238493 297634 314963 183227 1150 331313 270230 288631 281365 245188 233219 57629 96117 5486 235536 16616 266024 450500 463810 225869 347163 85799 35785 323592 367376 493928 412335 210444 239...
output:
NIE 489908 NIE 423740 NIE 279006 NIE 462259 NIE 158247 NIE 384378 NIE 494514 NIE 3322 NIE 394683 NIE 442060 NIE 245116 NIE 61703 NIE 252924 NIE 497622 NIE 276108 NIE 220393 NIE 172468 NIE 125805 NIE 222199 NIE 405766 NIE 189316 NIE 448579 NIE 182682 NIE 434642 NIE 107813 NIE 422260 NIE 130090 NIE 10...
result:
ok 500000 lines
Test #8:
score: 0
Accepted
time: 1528ms
memory: 211648kb
input:
5 100000 200000 N 32553 Q 53905 N 99868 Q 16231 N 80193 Q 75322 N 67918 Q 41105 P 1971 Q 19163 N 72688 Q 64285 N 24036 Q 90510 K 42768 9252 90253 81453 25374 20844 19710 87660 25990 26017 14307 47718 33452 44718 78182 80625 34167 31645 17705 54959 79160 13271 86156 74307 11060 41341 6703 47590 90648...
output:
NIE 53905 NIE 70136 NIE 45458 NIE 86563 NIE 5726 NIE 70011 NIE 60521 NIE 18953 NIE 30216 NIE 23898 NIE 24356 NIE 40535 NIE 45637 NIE 40881 NIE 82653 NIE 49596 NIE 50319 NIE 52877 NIE 6746 NIE 47772 NIE 45466 NIE 15691 NIE 77214 NIE 85013 NIE 8550 NIE 84875 NIE 29111 NIE 81603 NIE 12614 NIE 58199 NIE...
result:
ok 500000 lines
Test #9:
score: 0
Accepted
time: 536ms
memory: 186516kb
input:
1000 6 14 K 3 3 4 5 K 2 6 5 N 3 Q 3 P 1 K 2 6 2 P 6 Q 4 P 6 K 2 1 3 N 3 Q 4 N 2 Q 1 5 80 K 5 5 2 3 1 4 Q 1 N 3 Q 3 K 5 3 1 5 2 4 Q 4 K 5 3 4 2 5 1 Q 1 N 1 Q 1 N 4 Q 2 N 5 Q 2 K 5 3 2 5 4 1 Q 5 K 4 2 3 1 5 Q 3 N 1 Q 3 K 2 3 5 Q 2 N 1 Q 5 N 4 Q 1 K 3 5 3 4 Q 3 K 2 2 4 Q 2 K 4 5 2 3 4 Q 5 K 2 5 2 Q 2 N...
output:
NIE 5 NIE 1 TAK TAK NIE 1 TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK NIE 4 NIE 3 NIE 4 NIE 3 NIE 5 TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK TAK ...
result:
ok 496244 lines
Extra Test:
score: 0
Extra Test Passed