Submission #28621328


Source Code Expand

#include<bits/stdc++.h>
#define P 998244353
#define N 45

inline int fmo(int x){
	return x+((x>>31)&P);
}
inline int fp(int x,int k=P-2){
	int res=1;
	for(;k;k>>=1,x=1ll*x*x%P)
		if(k&1)
			res=1ll*res*x%P;
	return res;
}

int fac[N],inv[N],ifac[N],p2[N<<1];
inline void init(int x){
	fac[0]=1;
	for(int i=1;i<=x;i++)
		fac[i]=1ll*fac[i-1]*i%P;
	inv[1]=1;
	for(int i=2;i<=x;i++)
		inv[i]=fmo(-1ll*P/i*inv[P%i]%P);
	ifac[0]=1;
	for(int i=1;i<=x;i++)
		ifac[i]=1ll*ifac[i-1]*inv[i]%P;
	for(int i=-x;i<=x;i++)
		p2[i+x]=i<0?fp(fp(2),-i):fp(2,i);
}

int n,a[N];

int pw[N][N];

int f[N][N],g[N][N];

int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
		a[i]=1ll*a[i]*fp(100)%P;
		pw[i][0]=1;
		for(int j=1;j<=n;j++)
			pw[i][j]=1ll*pw[i][j-1]*a[i]%P;
	}
	init(n);
	for(int o=0;o<n;o++){
		for(int i=0;i<n-1;i++)
			std::swap(pw[i],pw[i+1]);
		memset(f,0,sizeof(f));
		f[0][1]=fac[n-1];
		for(int i=0;i<=n-2;i++){
			memset(g,0,sizeof(g));
			for(int s=0;s<=n-1;s++) for(int c=0;s+c<=n-1;c++)
				for(int k=1;k<=n;k++)
					g[s+c][k]=fmo(g[s+c][k]+1ll*ifac[c]*pw[i][c]%P*fmo(f[s][k]-1ll*p2[i-s-c+n]*f[s][k-1]%P)%P-P);
			std::swap(f,g);
		}
		int res=0;
		for(int i=0;i<n;i++){
			int tmp=0;
			for(int j=1;j<=n;j++)
				tmp=fmo(tmp+1ll*f[i][j]*fp(fmo(1-p2[-j+n]))%P-P);
			res=fmo(res+1ll*ifac[n-1-i]*pw[n-1][n-1-i]%P*tmp%P-P);
		}
		res=1ll*res*fp(2)%P;
		printf("%d ",res);
	}
	puts("");
}

Submission Info

Submission Time
Task E - Cheese
User Y25t
Language C++ (GCC 9.2.1)
Score 1600
Code Size 1478 Byte
Status AC
Exec Time 213 ms
Memory 3864 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:38:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   38 |  scanf("%d",&n);
      |  ~~~~~^~~~~~~~~
./Main.cpp:40:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   40 |   scanf("%d",&a[i]);
      |   ~~~~~^~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 3
AC × 28
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 8 ms 3612 KiB
00-sample-002.txt AC 2 ms 3796 KiB
00-sample-003.txt AC 3 ms 3604 KiB
01-001.txt AC 2 ms 3644 KiB
01-002.txt AC 2 ms 3748 KiB
01-003.txt AC 2 ms 3656 KiB
01-004.txt AC 2 ms 3604 KiB
01-005.txt AC 3 ms 3844 KiB
01-006.txt AC 4 ms 3848 KiB
01-007.txt AC 7 ms 3864 KiB
01-008.txt AC 10 ms 3664 KiB
01-009.txt AC 15 ms 3748 KiB
01-010.txt AC 143 ms 3792 KiB
01-011.txt AC 2 ms 3792 KiB
01-012.txt AC 29 ms 3744 KiB
01-013.txt AC 3 ms 3616 KiB
01-014.txt AC 9 ms 3788 KiB
01-015.txt AC 5 ms 3756 KiB
01-016.txt AC 208 ms 3752 KiB
01-017.txt AC 207 ms 3656 KiB
01-018.txt AC 210 ms 3712 KiB
01-019.txt AC 213 ms 3768 KiB
01-020.txt AC 207 ms 3788 KiB
01-021.txt AC 210 ms 3660 KiB
01-022.txt AC 209 ms 3848 KiB
01-023.txt AC 209 ms 3628 KiB
01-024.txt AC 210 ms 3612 KiB
01-025.txt AC 212 ms 3632 KiB