結果
問題 |
No.2754 Cumulate and Drop
|
ユーザー |
|
提出日時 | 2024-05-14 15:48:28 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 97 ms / 2,000 ms |
コード長 | 870 bytes |
コンパイル時間 | 3,924 ms |
コンパイル使用メモリ | 251,420 KB |
最終ジャッジ日時 | 2025-02-21 14:02:58 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include<bits/stdc++.h> #include <iostream> using namespace std; #include<atcoder/all> using namespace atcoder; using ll = long long; using mint = modint998244353; const int MAX = 505050; mint fac[MAX],facinv[MAX]; void init(){ fac[0] = fac[1] = 1; facinv[0] = facinv[1] = 1; for(int i = 2;i<MAX;i++){ fac[i] = fac[i-1] * i; facinv[i] = fac[i].inv(); } } mint biom(int n,int k){ if(n<k)return 0; if(n<0||k<0)return 0; return fac[n]*facinv[k]*facinv[n-k]; } mint routesum(int x,int y){ return biom(x+y,x); } int N; vector<int> a; void solve(){ mint ans = 0; for(int i = 0;i<N;i++){ mint coef = biom(N+i-1,i) - biom(N+i-1,i-1); ans += mint(a[N-i-1])*(coef); } cout<< ans.val() << endl; } signed main(){ cin.tie(nullptr); ios::sync_with_stdio(false); init(); cin >> N; a = vector<int>(N); for(int i = 0;i<N;i++){ cin >> a[i]; } solve(); }