Submission #17672045


Source Code Expand

#include <bits/stdc++.h>
#define rep(i, L, R) for (int i = (L); i <= (R); ++i)

const int MOD = 998244353;
inline int add(int x, int y) { return x + y >= MOD ? x + y - MOD : x + y; }
inline int sub(int x, int y) { return x < y ? x - y + MOD : x - y; }
inline int mul(int x, int y) { return 1LL * x * y - 1LL * x * y / MOD * MOD; }
inline int Qpow(int a, int b) { int ans = 1; for (; b; a = mul(a, a), b >>= 1) if (b & 1) ans = mul(ans, a); return ans; }
inline int inv(int x) { return Qpow(x, MOD - 2); }

int n, S, T;
int a[410], b[410], P[410][410], tmpP[410][410], iv[410];

int main() {
	iv[1] = 1;
	for (int i = 2; i <= 405; ++i) iv[i] = mul(iv[MOD % i], MOD - MOD / i);
	scanf("%d", &n);
	rep(i, 1, n) scanf("%d%d", a + i, b + i), S += a[i], T += b[i] - 1;
	int invS = inv(S);
	P[0][0] = 1;
	rep(i, 1, n) {
		rep(j, 0, S) rep(k, 0, T) tmpP[j][k] = P[j][k], P[j][k] = 0;
		rep(j, 0, S) rep(k, 0, T) for (int l = 0, pro = 1; l < b[i] && l <= k; ++l, pro = mul(pro, mul(a[i], mul(invS, iv[l])))) P[j][k] = sub(P[j][k], mul(pro, tmpP[j][k - l]));
		rep(j, a[i], S) rep(k, 0, T) P[j][k] = add(P[j][k], tmpP[j - a[i]][k]);
	}
	int ans = 0;
	for (int i = 0; i < S; ++i) {
		int x = mul(i, invS), invX = inv(sub(1, x));
		for (int j = 0, pro = invX; j <= T; ++j, pro = mul(pro, mul(j, invX))) ans = add(ans, mul(P[i][j], pro));
	}
	printf("%d\n", sub(0, ans));
	return 0;
}

Submission Info

Submission Time
Task E - Gachapon
User realSpongeBob
Language C++ (GCC 9.2.1)
Score 1600
Code Size 1403 Byte
Status AC
Exec Time 376 ms
Memory 5128 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:17:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   17 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
./Main.cpp:18:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   18 |  rep(i, 1, n) scanf("%d%d", a + i, b + i), S += a[i], T += b[i] - 1;
      |               ~~~~~^~~~~~~~~~~~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 3
AC × 33
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
All 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 211 ms 5060 KiB
01-02.txt AC 333 ms 5008 KiB
01-03.txt AC 320 ms 4892 KiB
01-04.txt AC 327 ms 4992 KiB
01-05.txt AC 301 ms 4924 KiB
01-06.txt AC 376 ms 5008 KiB
01-07.txt AC 368 ms 5060 KiB
01-08.txt AC 320 ms 4964 KiB
01-09.txt AC 363 ms 5008 KiB
01-10.txt AC 322 ms 5124 KiB
01-11.txt AC 376 ms 4884 KiB
01-12.txt AC 342 ms 5008 KiB
01-13.txt AC 273 ms 4868 KiB
01-14.txt AC 350 ms 5056 KiB
01-15.txt AC 305 ms 4868 KiB
01-16.txt AC 333 ms 5004 KiB
01-17.txt AC 304 ms 4932 KiB
01-18.txt AC 213 ms 5012 KiB
01-19.txt AC 281 ms 5000 KiB
01-20.txt AC 237 ms 5008 KiB
01-21.txt AC 262 ms 4872 KiB
01-22.txt AC 234 ms 5000 KiB
01-23.txt AC 182 ms 4872 KiB
01-24.txt AC 237 ms 4884 KiB
01-25.txt AC 182 ms 4920 KiB
01-26.txt AC 242 ms 4924 KiB
01-27.txt AC 119 ms 5004 KiB
01-28.txt AC 174 ms 5004 KiB
01-29.txt AC 49 ms 5120 KiB
01-30.txt AC 12 ms 5052 KiB
sample-01.txt AC 2 ms 3724 KiB
sample-02.txt AC 4 ms 3844 KiB
sample-03.txt AC 361 ms 5128 KiB