QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#61560 | #4830. Transfer of Duty | kkio | 0 | 936ms | 81744kb | C++14 | 1.0kb | 2022-11-14 07:42:12 | 2023-02-13 20:48:34 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
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];
signed 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("%lld",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%lld",&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("%lld\n",*s.begin());}
else puts("-1");
}
printf("%lld\n",S);
}
else
{
map<int,int> mp;
for(int i=0;i<=1000000;i++)mp[1ll*pw[i]*v[i]%mod]=i;
scanf("%lld",&S);
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%lld",&x);
S^=1ll*pw[x]*v[x]%mod;
if(S==0)puts("0");
else if(mp.find(S)!=mp.end())printf("%lld\n",mp[S]);
else puts("-1");
}
}
}
/*
769858824
*/
詳細信息
Test #1:
score: 100
Accepted
time: 865ms
memory: 81724kb
input:
start 5 10 14 10 12 10
output:
10 -1 14 -1 -1 411604508
input:
resume 411604508 6 14 277 12 10 277 12
output:
-1 -1 -1 277 0 12
result:
ok
Test #2:
score: 100
Accepted
time: 860ms
memory: 81596kb
input:
start 1 1
output:
1 476826296
input:
resume 476826296 1 1
output:
0
result:
ok
Test #3:
score: 100
Accepted
time: 772ms
memory: 81720kb
input:
start 1 1000000
output:
1000000 82884519
input:
resume 82884519 2 1 1000000
output:
-1 1
result:
ok
Test #4:
score: 100
Accepted
time: 863ms
memory: 81728kb
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: 813ms
memory: 81492kb
input:
start 3 1 2 3
output:
1 -1 -1 433760149
input:
resume 433760149 2 4 5
output:
-1 -1
result:
ok
Test #6:
score: 100
Accepted
time: 936ms
memory: 81672kb
input:
start 5 483440 800458 959493 679027 187008
output:
483440 -1 -1 -1 -1 880307687
input:
resume 880307687 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: 823ms
memory: 81676kb
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 750825057
input:
resume 750825057 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: 876ms
memory: 81744kb
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 741512500 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 -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:
wrong answer