//隣り合う行i,i+1を移動するときの列はmin(A[i], A[i+1])個から選ぶ必要があって、これで十分なはず。 #include #include #define int long long using namespace std; int mod = 998244353; int n; int a[200000]; signed main() { int i; cin >> n; for (i = 0; i < n; i++) cin >> a[i]; int ans = 1; for (i = 0; i < n - 1; i++) { ans *= min(a[i], a[i + 1]); ans %= mod; } cout << ans << endl; return 0; }