結果
問題 | No.2275 →↑↓ |
ユーザー |
|
提出日時 | 2023-04-21 23:08:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 893 bytes |
コンパイル時間 | 1,521 ms |
コンパイル使用メモリ | 168,408 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-06 16:34:04 |
合計ジャッジ時間 | 2,940 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 4 WA * 9 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int> P;#define REP(i,n) for(int i=0;i<int(n);i++)const ll MOD=998244353;ll a[200010];ll extgcd(ll a,ll b,ll& x,ll& y){ll g;if(b!=0){g=extgcd(b,a%b,y,x);y-=(a/b)*x;}else{g=a;x=1; y=0;}return g;}ll mod_inverse(ll a,ll m){ll x,y;extgcd(a,m,x,y);return (x%m+m)%m;}int main(void){cin.tie(nullptr); ios_base::sync_with_stdio(false);int i,j,k;int N;cin >> N;for(i=1;i<=N;i++) cin >> a[i];ll ans=a[1];a[0]=1;for(i=2;i<=N;i++){if(a[i]>=a[i-1]){if(i==N){ans=ans*min(a[i],a[i-1]);ans%=MOD;}else{ans=a[i]*ans;ans%=MOD;}}else{ll v=mod_inverse(a[i-1],MOD);ans=ans*v;ans%=MOD;ans=ans*a[i-2];ans%=MOD;ans=ans*a[i];ans%=MOD;}}cout << ans << endl;return 0;}