Submission #1542080


Source Code Expand

#include<cstdio>
#include<algorithm>

using namespace std;

const long long mod = 998244353;

const int MA = 1100100;

long long fact[MA], ifact[MA];
long long is[MA];

inline long long mul(long long a, long long b){
	return (a * b) % mod;
}

long long C(int n, int k){
	long long tmp = fact[n];
	tmp = mul(tmp, ifact[k]);
	tmp = mul(tmp, ifact[n - k]);
	return tmp;
}

long long iC(int n, int k){
	long long tmp = ifact[n];
	tmp = mul(tmp, fact[k]);
	tmp = mul(tmp, fact[n - k]);
	return tmp;
}
	

long long ways(int a, int b){
	return C(a + b, a);
}

long long iways(int a, int b){
	return iC(a + b, a);
}

void init(){
	fact[0] = 1;
	for(int i = 1; i < MA; ++i){
		fact[i] = mul(fact[i - 1], i);
	}
	is[1] = 1;
	for(int i = 2; i < MA; ++i){
		int k = mod / i;
		int r = mod % i;
		long long tmp = is[r] * (-k);
		tmp %= mod;
		if(tmp < 0) tmp += mod;
		is[i] = tmp;
	}
	ifact[0] = 1;
	for(int i = 1; i < MA; ++i){
		ifact[i] = mul(ifact[i - 1], is[i]);
	}
}

int N, M;

long long solve(){
	if(N < M) swap(N, M);
	long long ans = 0;
	for(int i = 0; i < M; ++i){
		int a = N - M + i;
		int b = i;
		long long tmp = ways(a, b);
		int c = M - i;
		long long tmp2 = ways(c, c);
		long long cur = mul(tmp, tmp2);
		ans += cur;
		if(ans > mod) ans -= mod;
	}
	if(ans % 2 == 0) ans /= 2;
	else ans = (ans + mod) / 2;
	long long iden = iways(N, M);
	ans = mul(ans, iden);
	ans += N;
	ans %= mod;
	ans += mod;
	ans %= mod;
	return ans;
}

int main(){
	scanf("%d%d", &N, &M);
	init();
	long long ans = solve();
	printf("%lld\n", ans);
	return 0;
}

Submission Info

Submission Time
Task F - Yes or No
User wo01
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 1632 Byte
Status AC
Exec Time 50 ms
Memory 26112 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:87:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &M);
                       ^

Judge Result

Set Name Sample Partial All
Score / Max Score 0 / 0 1500 / 1500 500 / 500
Status
AC × 5
AC × 28
AC × 75
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt
Partial sample_01.txt, sample_02.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_2_01.txt, subtask_2_02.txt, subtask_2_03.txt, subtask_2_04.txt, subtask_2_05.txt, subtask_2_06.txt, subtask_2_07.txt, subtask_2_08.txt, subtask_2_09.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_28.txt, subtask_2_29.txt, subtask_2_30.txt, subtask_2_31.txt, subtask_2_32.txt, subtask_2_33.txt, subtask_2_34.txt, subtask_2_35.txt, subtask_2_36.txt, subtask_2_37.txt, subtask_2_38.txt, subtask_2_39.txt, subtask_2_40.txt
Case Name Status Exec Time Memory
sample_01.txt AC 43 ms 25984 KB
sample_02.txt AC 43 ms 25984 KB
sample_03.txt AC 42 ms 25984 KB
sample_04.txt AC 42 ms 25984 KB
sample_05.txt AC 45 ms 25984 KB
subtask_1_01.txt AC 42 ms 25984 KB
subtask_1_02.txt AC 42 ms 25984 KB
subtask_1_03.txt AC 45 ms 25984 KB
subtask_1_04.txt AC 42 ms 25984 KB
subtask_1_05.txt AC 42 ms 25984 KB
subtask_1_06.txt AC 42 ms 25984 KB
subtask_1_07.txt AC 42 ms 25984 KB
subtask_1_08.txt AC 42 ms 25984 KB
subtask_1_09.txt AC 43 ms 25984 KB
subtask_1_10.txt AC 42 ms 25984 KB
subtask_1_11.txt AC 42 ms 25984 KB
subtask_1_12.txt AC 47 ms 25984 KB
subtask_1_13.txt AC 42 ms 25984 KB
subtask_1_14.txt AC 43 ms 25984 KB
subtask_1_15.txt AC 43 ms 25984 KB
subtask_1_16.txt AC 48 ms 25984 KB
subtask_1_17.txt AC 43 ms 25984 KB
subtask_1_18.txt AC 44 ms 25984 KB
subtask_1_19.txt AC 44 ms 25984 KB
subtask_1_20.txt AC 43 ms 25984 KB
subtask_1_21.txt AC 44 ms 25984 KB
subtask_1_22.txt AC 45 ms 25984 KB
subtask_1_23.txt AC 44 ms 25984 KB
subtask_1_24.txt AC 44 ms 26112 KB
subtask_1_25.txt AC 44 ms 25984 KB
subtask_2_01.txt AC 43 ms 25984 KB
subtask_2_02.txt AC 43 ms 25984 KB
subtask_2_03.txt AC 47 ms 25984 KB
subtask_2_04.txt AC 48 ms 25984 KB
subtask_2_05.txt AC 48 ms 25984 KB
subtask_2_06.txt AC 47 ms 25984 KB
subtask_2_07.txt AC 47 ms 25984 KB
subtask_2_08.txt AC 48 ms 25984 KB
subtask_2_09.txt AC 47 ms 25984 KB
subtask_2_10.txt AC 49 ms 25984 KB
subtask_2_11.txt AC 47 ms 25984 KB
subtask_2_12.txt AC 47 ms 25984 KB
subtask_2_13.txt AC 47 ms 25984 KB
subtask_2_14.txt AC 47 ms 25984 KB
subtask_2_15.txt AC 48 ms 25984 KB
subtask_2_16.txt AC 47 ms 25984 KB
subtask_2_17.txt AC 47 ms 25984 KB
subtask_2_18.txt AC 47 ms 25984 KB
subtask_2_19.txt AC 46 ms 25984 KB
subtask_2_20.txt AC 42 ms 25984 KB
subtask_2_21.txt AC 45 ms 25984 KB
subtask_2_22.txt AC 43 ms 25984 KB
subtask_2_23.txt AC 42 ms 25984 KB
subtask_2_24.txt AC 42 ms 25984 KB
subtask_2_25.txt AC 44 ms 25984 KB
subtask_2_26.txt AC 43 ms 25984 KB
subtask_2_27.txt AC 45 ms 25984 KB
subtask_2_28.txt AC 43 ms 25984 KB
subtask_2_29.txt AC 43 ms 25984 KB
subtask_2_30.txt AC 43 ms 25984 KB
subtask_2_31.txt AC 47 ms 25984 KB
subtask_2_32.txt AC 50 ms 25984 KB
subtask_2_33.txt AC 47 ms 25984 KB
subtask_2_34.txt AC 47 ms 25984 KB
subtask_2_35.txt AC 47 ms 25984 KB
subtask_2_36.txt AC 47 ms 25984 KB
subtask_2_37.txt AC 45 ms 25984 KB
subtask_2_38.txt AC 43 ms 25984 KB
subtask_2_39.txt AC 47 ms 25984 KB
subtask_2_40.txt AC 43 ms 25984 KB