QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#61564 | #4830. Transfer of Duty | kkio | 0 | 989ms | 81852kb | C++14 | 961b | 2022-11-14 07:47:55 | 2023-02-13 20:49:06 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e5+10;
int seed=2431332,base=131,mod=998244353;
mt19937 rnd(seed);
int n,S,v[1000005],pw[1000005];
map<int,int> mp;
char s[10];
signed main()
{
scanf("%s",s+1);
for(int i=1;i<=1000000;i++)v[i]=rnd()%mod;
pw[0]=1;for(int i=1;i<=1000000;i++)pw[i]=1ll*pw[i-1]*base%mod;
for(int i=1;i<=1000000;i++)mp[1ll*pw[i]*v[i]%mod]=i;
if(s[1]=='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");
}
printf("%lld\n",S);
}
else
{
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");
}
}
}
/*
830272103
*/
詳細信息
Test #1:
score: 100
Accepted
time: 921ms
memory: 81604kb
input:
start 5 10 14 10 12 10
output:
10 -1 14 -1 -1 752817364
input:
resume 752817364 6 14 277 12 10 277 12
output:
-1 -1 -1 277 0 12
result:
ok
Test #2:
score: 100
Accepted
time: 893ms
memory: 81564kb
input:
start 1 1
output:
1 571657399
input:
resume 571657399 1 1
output:
0
result:
ok
Test #3:
score: 100
Accepted
time: 887ms
memory: 81680kb
input:
start 1 1000000
output:
1000000 732677705
input:
resume 732677705 2 1 1000000
output:
-1 1
result:
ok
Test #4:
score: 100
Accepted
time: 971ms
memory: 81852kb
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: 989ms
memory: 81852kb
input:
start 3 1 2 3
output:
1 -1 -1 232025213
input:
resume 232025213 2 4 5
output:
-1 -1
result:
ok
Test #6:
score: 100
Accepted
time: 906ms
memory: 81632kb
input:
start 5 483440 800458 959493 679027 187008
output:
483440 -1 -1 -1 -1 670426584
input:
resume 670426584 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: 868ms
memory: 81660kb
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 615631827
input:
resume 615631827 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: 932ms
memory: 81636kb
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 411262409 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