Submission #36275343


Source Code Expand

#include<bits/stdc++.h>

using namespace std;

namespace acah
{
	constexpr int maxn = 1e7 + 7;
	constexpr int p = 998244353;
	
	int N, M, ans, fac[maxn << 1], inv[maxn << 1], pf[maxn / 3];
	
	inline int C(int n, int m) {return 1ll * fac[n] * inv[m] % p * inv[n - m] % p;}
	
	int work()
	{
		ios::sync_with_stdio(false), cin.tie(nullptr);
		
		cin >> N >> M;
		
		*fac = 1;
		for(int i = 1; i <= N + M; i++) fac[i] = 1ll * fac[i - 1] * i % p;
		for(int t = inv[N + M] = fac[N + M], x = p - 3; x; t = 1ll * t * t % p, x >>= 1)
			if(x & 1) inv[N + M] = 1ll * inv[N + M] * t % p;
		for(int i = N + M - 1; ~i; i--) inv[i] = 1ll * inv[i + 1] * (i + 1) % p;
		*pf = 1;
		for(int i = 1; i <= M / 3; i++)
			pf[i] = pf[i - 1] + C(N + i - 1, N - 1), pf[i] -= (pf[i] >= p ? p : 0);
		
		for(int fs = 0, t; fs < 3; fs++) for(int cnt = N - 1; ~cnt; cnt--) {
			if((t = fs + (N - 1) * 2 - cnt) > M) break;
			ans += 1ll * pf[(M - t) / 3] * C(N - 1, cnt) % p, ans -= (ans >= p ? p : 0);
		}
		
		cout << ans;
		
		return 0;
	}
}

int main() {return acah::work();}

Submission Info

Submission Time
Task G - Count Sequences
User whhsteven
Language C++ (GCC 9.2.1)
Score 600
Code Size 1088 Byte
Status AC
Exec Time 289 ms
Memory 172920 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 49
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_smallNM_00.txt, 01_smallNM_01.txt, 01_smallNM_02.txt, 01_smallNM_03.txt, 01_smallNM_04.txt, 01_smallNM_05.txt, 01_smallNM_06.txt, 01_smallNM_07.txt, 01_smallNM_08.txt, 01_smallNM_09.txt, 01_smallNM_10.txt, 01_smallNM_11.txt, 02_smallN_00.txt, 02_smallN_01.txt, 02_smallN_02.txt, 02_smallN_03.txt, 02_smallN_04.txt, 02_smallN_05.txt, 02_smallN_06.txt, 03_rnd_00.txt, 03_rnd_01.txt, 03_rnd_02.txt, 03_rnd_03.txt, 03_rnd_04.txt, 03_rnd_05.txt, 03_rnd_06.txt, 03_rnd_07.txt, 04_max_00.txt, 04_max_01.txt, 04_max_02.txt, 04_max_03.txt, 04_max_04.txt, 04_max_05.txt, 04_max_06.txt, 04_max_07.txt, 04_max_08.txt, 04_max_09.txt, 04_max_10.txt, 04_max_11.txt, 04_max_12.txt, 04_max_13.txt, 04_max_14.txt, 04_max_15.txt, 04_max_16.txt, 04_max_17.txt, 04_max_18.txt, 04_max_19.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 6 ms 3664 KiB
00_sample_01.txt AC 155 ms 94740 KiB
01_smallNM_00.txt AC 2 ms 3612 KiB
01_smallNM_01.txt AC 2 ms 3536 KiB
01_smallNM_02.txt AC 4 ms 3604 KiB
01_smallNM_03.txt AC 2 ms 3528 KiB
01_smallNM_04.txt AC 2 ms 3492 KiB
01_smallNM_05.txt AC 3 ms 3544 KiB
01_smallNM_06.txt AC 2 ms 3592 KiB
01_smallNM_07.txt AC 2 ms 3584 KiB
01_smallNM_08.txt AC 2 ms 3532 KiB
01_smallNM_09.txt AC 2 ms 3532 KiB
01_smallNM_10.txt AC 2 ms 3584 KiB
01_smallNM_11.txt AC 2 ms 3552 KiB
02_smallN_00.txt AC 155 ms 94632 KiB
02_smallN_01.txt AC 150 ms 94672 KiB
02_smallN_02.txt AC 153 ms 94684 KiB
02_smallN_03.txt AC 151 ms 94740 KiB
02_smallN_04.txt AC 153 ms 94736 KiB
02_smallN_05.txt AC 149 ms 94696 KiB
02_smallN_06.txt AC 149 ms 94804 KiB
03_rnd_00.txt AC 169 ms 104916 KiB
03_rnd_01.txt AC 107 ms 57504 KiB
03_rnd_02.txt AC 113 ms 69816 KiB
03_rnd_03.txt AC 255 ms 128996 KiB
03_rnd_04.txt AC 107 ms 64456 KiB
03_rnd_05.txt AC 221 ms 111276 KiB
03_rnd_06.txt AC 139 ms 85496 KiB
03_rnd_07.txt AC 96 ms 49376 KiB
04_max_00.txt AC 281 ms 172900 KiB
04_max_01.txt AC 289 ms 133752 KiB
04_max_02.txt AC 218 ms 114268 KiB
04_max_03.txt AC 186 ms 104548 KiB
04_max_04.txt AC 171 ms 99668 KiB
04_max_05.txt AC 276 ms 172812 KiB
04_max_06.txt AC 277 ms 172804 KiB
04_max_07.txt AC 277 ms 172812 KiB
04_max_08.txt AC 279 ms 172788 KiB
04_max_09.txt AC 280 ms 172868 KiB
04_max_10.txt AC 278 ms 172808 KiB
04_max_11.txt AC 276 ms 172808 KiB
04_max_12.txt AC 277 ms 172836 KiB
04_max_13.txt AC 278 ms 172812 KiB
04_max_14.txt AC 279 ms 172856 KiB
04_max_15.txt AC 277 ms 172872 KiB
04_max_16.txt AC 280 ms 172748 KiB
04_max_17.txt AC 277 ms 172868 KiB
04_max_18.txt AC 280 ms 172920 KiB
04_max_19.txt AC 278 ms 172916 KiB