Submission #1789155


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define CC(n,m) ((LL)fac[(n)+(m)]*ifac[n]%mo*ifac[m]%mo)

const int N=1e6;
const int maxn=N+10;
const int mo=998244353;

int row,line,sum,Ans;
int n,m,fac[maxn],ifac[maxn];

int power(int x,int k)
{
	int res=1;
	while (k)
	{
		if (k&1) res=(LL)res*x%mo;
		x=(LL)x*x%mo;
		k>>=1;
	}
	return res;
}

int F(int n,int m,int x,int y)
{
	/*
	if (m-y<0) puts("#3");
	if (n-x<0)
	{
		puts("#4");
		printf("%d %d %d %d\n",n,m,x,y);
	}
	*/
//	if (x>N||y>N||n-x>N||m-y>N) printf("...");
	if (x>=0&&y>=0)
		return CC(x,y)*CC((n)-(x),(m)-(y))%mo;
	else
		return CC((n)-(x),(m)-(y))%mo;
}

int main()
{
#ifdef h10
	freopen("F.in","r",stdin);
	freopen("F.out","w",stdout);
#endif
	int i;
	fac[0]=1;
	for (i=1;i<=N;i++)
		fac[i]=(LL)fac[i-1]*i%mo;
	ifac[N]=power(fac[N],mo-2);
	for (i=N;i>=1;i--)
		ifac[i-1]=(LL)ifac[i]*i%mo;

	scanf("%d%d",&n,&m);

	if (n>m) swap(n,m);

	for (i=1;i<=n+m;i++)
	{
//		if (i==1)
//		{
//			row=CC(n,m-1);
//			line=CC(n-1,m);
//		}
//		else
			if (i<=n*2+1)
			{
				if (i&1)
				{
//3 : n,m-2,1,0
//5 : n,m-2,2,1
					(row+=F(n,m-2,i>>1,(i>>1)-1))%=mo;

					if (i<=n*2)

					(line+=F(n-2,m,(i>>1)-1,i>>1))%=mo;
//					if (i==n*2+1)
					if (i==1)
					{
//						printf("+=F(%d,%d,%d,%d)\n",n,m-2,i>>1,(i>>1)-1);
					}
				}
				else
				{
					(row+=mo-F(n-1,m-1,(i>>1)-1,(i>>1)-1))%=mo;
					(line+=mo-F(n-1,m-1,(i>>1)-1,(i>>1)-1))%=mo;
				}
			}
		(sum+=row)%=mo;
		(sum+=line)%=mo;
		(Ans+=(LL)sum*power(i,mo-2)%mo)%=mo;
//		printf("%d : %d %d\n",i,row,line);
	}
	Ans=(LL)Ans*power(CC(n,m),mo-2)%mo;
	printf("%d\n",Ans);
}

Submission Info

Submission Time
Task F - Yes or No
User h10
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 1712 Byte
Status AC
Exec Time 197 ms
Memory 8064 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:56:21: 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 13 ms 8064 KB
sample_02.txt AC 13 ms 8064 KB
sample_03.txt AC 13 ms 8064 KB
sample_04.txt AC 13 ms 8064 KB
sample_05.txt AC 13 ms 8064 KB
subtask_1_01.txt AC 13 ms 8064 KB
subtask_1_02.txt AC 13 ms 8064 KB
subtask_1_03.txt AC 13 ms 8064 KB
subtask_1_04.txt AC 13 ms 8064 KB
subtask_1_05.txt AC 13 ms 8064 KB
subtask_1_06.txt AC 13 ms 8064 KB
subtask_1_07.txt AC 13 ms 8064 KB
subtask_1_08.txt AC 13 ms 8064 KB
subtask_1_09.txt AC 13 ms 8064 KB
subtask_1_10.txt AC 14 ms 8064 KB
subtask_1_11.txt AC 13 ms 8064 KB
subtask_1_12.txt AC 14 ms 8064 KB
subtask_1_13.txt AC 17 ms 8064 KB
subtask_1_14.txt AC 24 ms 8064 KB
subtask_1_15.txt AC 49 ms 8064 KB
subtask_1_16.txt AC 50 ms 8064 KB
subtask_1_17.txt AC 49 ms 8064 KB
subtask_1_18.txt AC 50 ms 8064 KB
subtask_1_19.txt AC 50 ms 8064 KB
subtask_1_20.txt AC 50 ms 8064 KB
subtask_1_21.txt AC 49 ms 8064 KB
subtask_1_22.txt AC 50 ms 8064 KB
subtask_1_23.txt AC 49 ms 8064 KB
subtask_1_24.txt AC 47 ms 8064 KB
subtask_1_25.txt AC 45 ms 8064 KB
subtask_2_01.txt AC 13 ms 8064 KB
subtask_2_02.txt AC 13 ms 8064 KB
subtask_2_03.txt AC 13 ms 8064 KB
subtask_2_04.txt AC 195 ms 8064 KB
subtask_2_05.txt AC 196 ms 8064 KB
subtask_2_06.txt AC 196 ms 8064 KB
subtask_2_07.txt AC 196 ms 8064 KB
subtask_2_08.txt AC 196 ms 8064 KB
subtask_2_09.txt AC 196 ms 8064 KB
subtask_2_10.txt AC 196 ms 8064 KB
subtask_2_11.txt AC 196 ms 8064 KB
subtask_2_12.txt AC 196 ms 8064 KB
subtask_2_13.txt AC 196 ms 8064 KB
subtask_2_14.txt AC 197 ms 8064 KB
subtask_2_15.txt AC 197 ms 8064 KB
subtask_2_16.txt AC 196 ms 8064 KB
subtask_2_17.txt AC 195 ms 8064 KB
subtask_2_18.txt AC 181 ms 8064 KB
subtask_2_19.txt AC 156 ms 8064 KB
subtask_2_20.txt AC 91 ms 8064 KB
subtask_2_21.txt AC 92 ms 8064 KB
subtask_2_22.txt AC 91 ms 8064 KB
subtask_2_23.txt AC 92 ms 8064 KB
subtask_2_24.txt AC 91 ms 8064 KB
subtask_2_25.txt AC 91 ms 8064 KB
subtask_2_26.txt AC 92 ms 8064 KB
subtask_2_27.txt AC 93 ms 8064 KB
subtask_2_28.txt AC 94 ms 8064 KB
subtask_2_29.txt AC 96 ms 8064 KB
subtask_2_30.txt AC 113 ms 8064 KB
subtask_2_31.txt AC 134 ms 8064 KB
subtask_2_32.txt AC 196 ms 8064 KB
subtask_2_33.txt AC 196 ms 8064 KB
subtask_2_34.txt AC 196 ms 8064 KB
subtask_2_35.txt AC 194 ms 8064 KB
subtask_2_36.txt AC 193 ms 8064 KB
subtask_2_37.txt AC 101 ms 8064 KB
subtask_2_38.txt AC 80 ms 8064 KB
subtask_2_39.txt AC 188 ms 8064 KB
subtask_2_40.txt AC 111 ms 8064 KB