0
点赞
收藏
分享

微信扫一扫

【CF】G - 鸡哥的雕像 前缀积后缀积

90哦吼 2022-05-03 阅读 64
c++算法

原题
在这里插入图片描述
在这里插入图片描述
输入1:

3
2021 7 11

输出1:

77 22231 14147

输入2:

4
114 514 1919 810

输出2:

798956460 177200460 47462760 112445724

看完代码就懂了。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fir(i,a,n) for(int i=a;i<=n;i++)
const int N=1e5+10;
int n;
ll a[N];
ll aa[N],bb[N];
const int MOD=998244353;
int main()
{
	cin>>n;
	fir(i,1,n) cin>>a[i];
	fir(i,1,n)
	{
		if(i==1) aa[i]=a[i];
		else aa[i]=aa[i-1]%MOD*a[i]%MOD;
	}
	for(int i=n;i>=1;i--)
	{
		if(i==n) bb[i]=a[i];
		else bb[i]=bb[i+1]%MOD*a[i]%MOD;
	}
	
	fir(i,1,n)
	{
		if(i==1) cout<<bb[2];
		else if(i==n) cout<<" "<<aa[n-1];
		else cout<<" "<<aa[i-1]%MOD*bb[i+1]%MOD;
	}
	return 0;
}
举报

相关推荐

0 条评论