QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#423200#4427. EpidemicMEKHANEAC ✓2667ms344344kbC++141.4kb2024-05-27 21:31:052024-05-27 21:31:07

Judging History

你现在查看的是最新测评结果

  • [2024-05-27 21:31:07]
  • 评测
  • 测评结果:AC
  • 用时:2667ms
  • 内存:344344kb
  • [2024-05-27 21:31:05]
  • 提交

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();
}

详细

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