QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#582218 | #9376. Game | jcybtd | WA | 143ms | 3628kb | C++11 | 1.0kb | 2024-09-22 15:41:07 | 2024-09-22 15:41:08 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 998244353;
ll pa, pb;
ll ksm(ll a, ll b){
a %= mod;
b %= mod;
ll res = 1;
while(b){
if(b & 1) res = (res * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return res;
}
ll f(ll x, ll y){//返回awin的概率
if(x <= y){
ll kb = y / x;
if(y % x == 0) return ksm(pa, kb);
return ksm(pa, kb) * f(x, y % x) % mod;
}
else{
ll kb = x / y;
if(x % y == 0) return (1 - ksm(pb, kb) + mod) % mod;
return ((1 - ksm(pb, kb) * ((1 - f(x % y, y) + mod) % mod) % mod + mod) % mod);
}
}
void solve(){
ll x, y;
ll a, b, c;
cin >> x >> y >> a >> b >> c;
a = a * ksm(c, mod - 2);
b = b * ksm(c, mod - 2);
pa = a * ksm(a + b, mod - 2) % mod;
pb = b * ksm(a + b, mod - 2) % mod;
cout << f(x, y) << endl;
}
void get(ll a, ll b){
a %= mod;
b %= mod;
cout << a * ksm(b, mod - 2) % mod << endl;
}
int main(){
int t;
cin >> t;
while(t--){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3616kb
input:
3 1 1 2 2 6 1 3 2 3 6 3 4 7 3 15
output:
499122177 910398850 220911476
result:
ok 3 lines
Test #2:
score: -100
Wrong Answer
time: 143ms
memory: 3628kb
input:
100000 1 1000000000 12980050 128257807 266126484 1 1000000000 400255084 123438563 768881284 1000000000 1000000000 24563487 72082135 450057094 1 1000000000 56952077 40876000 193815114 1000000000 1000000000 82048274 239365585 326520865 1000000000 1 309821265 346013425 963168258 1 1 104158269 199365020...
output:
-770290878 890050519 335703263 763860947 -783391962 974447292 30266590 514480642 947443564 -678235805 171512705 549449940 -976800137 848902815 984641203 767618152 -638986398 -603796344 574702536 52763345 -604620423 125244741 -788577654 429770801 -672800251 949619555 -305044711 53797779 27090127 5435...
result:
wrong answer 1st lines differ - expected: '947058399', found: '-770290878'