QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#61559 | #4830. Transfer of Duty | kkio | 0 | 822ms | 58300kb | C++14 | 1000b | 2022-11-14 07:40:48 | 2023-02-13 20:48:23 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int seed=243133,base=131,mod=998244353;
mt19937 rnd(seed);
int n,S,v[1000005],pw[1000005];
char s[10];
int main()
{
scanf("%s",s+1);
for(int i=0;i<=1000000;i++)v[i]=rnd();
pw[0]=1;for(int i=1;i<=1000000;i++)pw[i]=1ll*pw[i-1]*base%mod;
if(s[1]=='s')
{
set<int> s;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
if(s.find(x)!=s.end())s.erase(x);
else s.insert(x);
S^=1ll*pw[x]*v[x]%mod;
if(s.size()==0){puts("0");}
else if(s.size()==1){printf("%d\n",*s.begin());}
else puts("-1");
}
printf("%d\n",S);
}
else
{
map<int,int> mp;
for(int i=0;i<=1000000;i++)mp[1ll*pw[i]*v[i]%mod]=i;
scanf("%d",&S);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
S^=1ll*pw[x]*v[x]%mod;
if(S==0)puts("0");
else if(mp.find(S)!=mp.end())printf("%d\n",mp[S]);
else puts("-1");
}
}
}
/*
769858824
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 763ms
memory: 58292kb
input:
start 5 10 14 10 12 10
output:
10 -1 14 -1 -1 -660099178
input:
resume -660099178 6 14 277 12 10 277 12
output:
-1 -1 -1 277 0 12
result:
ok
Test #2:
score: 100
Accepted
time: 793ms
memory: 58260kb
input:
start 1 1
output:
1 476826296
input:
resume 476826296 1 1
output:
0
result:
ok
Test #3:
score: 100
Accepted
time: 818ms
memory: 58244kb
input:
start 1 1000000
output:
1000000 -822431365
input:
resume -822431365 2 1 1000000
output:
-1 1
result:
ok
Test #4:
score: 100
Accepted
time: 781ms
memory: 58224kb
input:
start 2 1 1
output:
1 0 0
input:
resume 0 2 1000000 1000000
output:
1000000 0
result:
ok
Test #5:
score: 100
Accepted
time: 795ms
memory: 58256kb
input:
start 3 1 2 3
output:
1 -1 -1 734682850
input:
resume 734682850 2 4 5
output:
-1 -1
result:
ok
Test #6:
score: 100
Accepted
time: 813ms
memory: 58120kb
input:
start 5 483440 800458 959493 679027 187008
output:
483440 -1 -1 -1 -1 -714923288
input:
resume -714923288 8 312653 808184 244728 372836 64144 525068 795548 379152
output:
-1 -1 -1 -1 -1 -1 -1 -1
result:
ok
Test #7:
score: 100
Accepted
time: 822ms
memory: 58096kb
input:
start 68 901287 581649 963302 839936 728540 414441 916931 567596 695928 364562 839701 726560 34000 85414 129234 413159 976576 799600 479209 808330 182632 685443 41419 207533 762418 206283 144088 679114 945142 919478 220106 992468 483248 197576 129732 123083 987094 712824 650777 907335 206313 958433 ...
output:
901287 -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 270845833
input:
resume 270845833 68 632048 873503 23659 234350 352724 63249 395634 638205 597162 368489 973286 290734 735407 636099 145516 176166 262275 936624 302002 344028 227364 297307 645242 206861 471059 139081 861346 172592 637220 698174 593758 561280 324011 489640 497542 657953 82088 553578 102675 32329 8536...
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
result:
ok
Test #8:
score: 0
Wrong Answer
time: 813ms
memory: 58300kb
input:
start 520 569396 440938 116732 473751 47601 877390 277114 259139 437475 193896 992342 402838 838349 33699 536576 163847 117713 927965 598864 939506 517156 87428 943725 624835 515205 108250 468405 990560 512040 343417 101050 944099 177534 73824 476709 772630 489775 929453 216227 822538 552185 208923 ...
output:
569396 -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...
input:
resume -949695022 700 707366 267047 407693 725807 896458 649723 322966 13478 797908 8465 563163 798321 831358 235782 473564 19913 929601 720398 521831 221253 936397 987947 63596 47475 259147 560605 188477 743888 948782 654739 934236 341826 67525 197899 989556 144568 618026 850867 550036 48216 288938...
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 936125 -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