QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#506848 | #9105. Zayin and Camp | WorldFinalEscaped | AC ✓ | 968ms | 238252kb | C++20 | 1.1kb | 2024-08-05 23:20:35 | 2024-08-05 23:20:35 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 30000005;
const int P = 998244353;
#define ll long long
#define ld long double
// https://yhx-12243.github.io/OI-transit/templates.html
inline ll MulMod(ll a, ll b) {
ll t = (a * b - (ll)((ld)a * b / P) * P) % P;
return t + (t >> 63 & P);
}
int fac[N], ifac[N];
inline int qpow(int a, int b = P - 2) {
int res = 1;
while (b) {
if (b & 1) res = MulMod(res, a);
a = MulMod(a, a);
b >>= 1;
}
return res;
}
inline void init(int n) {
fac[0] = 1;
for (int i = 1; i <= n; i++) fac[i] = MulMod(fac[i - 1], i);
ifac[n] = qpow(fac[n]);
for (int i = n - 1; i >= 0; i--) ifac[i] = MulMod(ifac[i + 1], i + 1);
}
inline int binom(int n, int m) {
return 1ll * fac[n] * ifac[m] % P * ifac[n - m] % P;
}
int main() {
init(3e7);
int T; scanf("%d", &T);
while (T--) {
int n, m, r, s;
scanf("%d%d%d%d", &n, &m, &r, &s);
int ans = binom(n * m + s + r + n, n);
ans = 1ll * (r + s) * ans % P * qpow(n * m + s + r + n) % P;
printf("%d\n", ans);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 961ms
memory: 238248kb
input:
11 1 10000000 5000000 5000000 10000000 1 5000000 4999999 1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 1 1 2 1 1 1 1 1 2 1 1 1 1 2 65536 128 262144 262144
output:
10000000 918302048 2 72 21602784 953026004 2 5 3 3 592004372
result:
ok 11 lines
Test #2:
score: 0
Accepted
time: 955ms
memory: 238236kb
input:
20 2907 1968 3465570 1924884 3380 2284 2608839 2797776 6426 1284 655387 4698365 5266 1418 2915862 996278 4240 1961 2411930 4535917 6672 326 1907300 3446892 3277 1723 2723016 2513630 3080 1642 4189797 3895123 2742 233 3735134 3357012 3979 1251 2459317 3693129 509 6365 2290345 4638974 8745 615 4764667...
output:
723781999 224712072 750599910 869276921 731158668 895479736 10881753 103229118 690899892 421944632 304404479 579383717 39487740 597221465 958692278 822467061 816115959 120618198 311959114 490554594
result:
ok 20 lines
Test #3:
score: 0
Accepted
time: 964ms
memory: 238180kb
input:
10000 3616 2765 2007646 4250422 1244 8038 1293680 1475945 4244 2356 1988338 2519904 9077 1101 2166961 4557601 7199 1389 1919122 3638263 9201 1086 2695585 641751 6551 1526 3897926 3397577 6805 1469 2840055 1196651 4369 2288 4697877 1629621 1750 5714 4059620 2520142 6405 1561 3929600 3258600 2694 3711...
output:
107534674 346132266 954157595 479052126 380877972 735381985 74839216 405232602 931302260 631564168 712648405 344937670 234651488 869142885 681927263 505369915 564524476 550870911 324659924 66948144 992964548 241231661 484506145 7718309 687385551 973923375 633803608 232509598 278238877 537450623 2945...
result:
ok 10000 lines
Test #4:
score: 0
Accepted
time: 967ms
memory: 238248kb
input:
10000 7 1428571 3806892 3971042 5 2000000 4338289 3148090 10 1000000 3147757 839143 8 1250000 2881455 2205039 7 1428571 2342154 2438676 3 3333333 4761187 1403114 6 1666666 330504 4140769 10 1000000 3487237 481616 1 10000000 4151782 2903821 7 1428571 2563975 3328818 1 10000000 280373 4740202 7 142857...
output:
435423871 845483986 674931684 504892305 286485841 703694039 744671270 385181425 7055603 173023557 5020575 807367718 543219467 876429046 354148931 6258348 61989990 103151853 560409410 713566565 515717026 500365288 604358913 346711004 542709460 364374860 308185404 486425107 950251013 241967180 6427206...
result:
ok 10000 lines
Test #5:
score: 0
Accepted
time: 968ms
memory: 238252kb
input:
10000 2000000 5 234997 359032 3333333 3 3480239 397877 1428571 7 1764822 2280539 3333333 3 4283465 4449809 1428571 7 2479124 2105713 2500000 4 257363 4964607 2500000 4 210476 32336 1428571 7 3535190 64528 3333333 3 1796295 3979453 10000000 1 1300527 3139051 1111111 9 1857103 4546029 10000000 1 43260...
output:
601808266 519466734 979400098 312889390 88051123 853842460 381243056 709326067 327087381 877914126 582716530 126896771 113580723 988870074 645021596 389233843 154044915 846240727 492062144 476093414 480656293 850772851 101475207 790985572 893502279 229118932 548588503 441033211 44427859 972364425 12...
result:
ok 10000 lines