QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#99741 | #5377. $N$ 门问题 | zhouhuanyi | 5 | 2ms | 3800kb | C++23 | 1.0kb | 2023-04-23 16:40:05 | 2023-04-23 16:40:06 |
Judging History
answer
#include<iostream>
#include<cstdio>
#define N 50000
using namespace std;
long long read()
{
char c=0;
long long sum=0;
while (c<'0'||c>'9') c=getchar();
while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
return sum;
}
__int128 T,a,b,sx,sy,n;
double ans;
__int128 gcd(__int128 a,__int128 b)
{
if (!b) return a;
return gcd(b,a%b);
}
__int128 lcm(__int128 a,__int128 b)
{
return a/gcd(a,b)*b;
}
void exgcd(__int128 a,__int128 b)
{
if (!b)
{
sx=1,sy=0;
return;
}
exgcd(b,a%b);
__int128 tx=sx;
sx=sy,sy=tx-(a/b)*sy;
return;
}
int main()
{
__int128 d=0,p=1,sp,g;
T=read();
while (T--)
{
a=read(),b=read(),g=gcd(p,b),sp=lcm(p,b);
if ((a-d)%g!=0)
{
puts("error");
return 0;
}
exgcd(p,b),sx=((sx*((a-d)/g))%sp+sp)%sp,d=(p*sx+d)%sp,p=sp;
}
n=d;
if (n<2)
{
puts("error");
return 0;
}
if (n==2) ans=1.0/2;
else if (n==3) ans=2.0/3;
else ans=5.0/8;
printf("%0.6lf\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 5
Accepted
Test #1:
score: 5
Accepted
time: 1ms
memory: 3796kb
input:
1 2 3
output:
0.500000
result:
ok single line: '0.500000'
Test #2:
score: 0
Accepted
time: 2ms
memory: 3596kb
input:
1 3 5
output:
0.666667
result:
ok single line: '0.666667'
Test #3:
score: 0
Accepted
time: 1ms
memory: 3596kb
input:
1 4 5
output:
0.625000
result:
ok single line: '0.625000'
Test #4:
score: 0
Accepted
time: 2ms
memory: 3372kb
input:
1 0 4
output:
error
result:
ok single line: 'error'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3352kb
input:
1 1 3
output:
error
result:
ok single line: 'error'
Subtask #2:
score: 0
Wrong Answer
Test #6:
score: 10
Accepted
time: 2ms
memory: 3376kb
input:
8 1 160005726539569 1 233 0 1 1 2947295521 1 686719856393 1 54289 1 12649337 1 37281334283719577
output:
error
result:
ok single line: 'error'
Test #7:
score: 0
Accepted
time: 2ms
memory: 3632kb
input:
10 2 64 0 2 2 512 2 4 2 32 2 16 2 256 0 1 2 8 2 128
output:
0.500000
result:
ok single line: '0.500000'
Test #8:
score: 0
Accepted
time: 2ms
memory: 3792kb
input:
10 3 256 3 16 0 1 3 8 3 512 3 32 3 4 3 128 3 64 1 2
output:
0.666667
result:
ok single line: '0.666667'
Test #9:
score: 0
Accepted
time: 2ms
memory: 3528kb
input:
10 0 2 4 8 0 4 4 256 0 1 4 512 4 32 4 128 4 64 4 16
output:
0.625000
result:
ok single line: '0.625000'
Test #10:
score: -10
Wrong Answer
time: 2ms
memory: 3636kb
input:
10 5 128 5 32 5 16 1 4 0 1 5 64 5 256 5 512 1 2 5 8
output:
0.625000
result:
wrong answer 1st lines differ - expected: '0.466667', found: '0.625000'
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #4:
0%
Subtask #6:
score: 0
Wrong Answer
Test #57:
score: 0
Wrong Answer
time: 2ms
memory: 3800kb
input:
15 15 17 2 3 5 31 4 5 12 29 38 41 3 11 44 47 16 23 11 19 6 13 3 37 1 2 21 43 5 7
output:
0.625000
result:
wrong answer 1st lines differ - expected: '0.000000', found: '0.625000'
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%