func_code_string: #include <bits/stdc++.h>   using namespace std;   inline int gi() {     int data = 0, fu = 1;     char ch = 0;     while (ch !=  -  && (ch <  0  || ch >  9 )) ch = getchar();     if (ch ==  - ) fu = -1, ch = getchar();     while ( 0  <= ch && ch <=  9 )       data = (data << 1) + (data << 3) + (ch ^ 48), ch = getchar();     return data * fu;   }   int f[100005][205][2];   int n, A[100005];   inline void Merge(int i) {     for (int j = 1; j <= 200; ++j) {       f[i][j][0] = (f[i][j - 1][0] + f[i][j][0]) % 998244353;       f[i][j][1] = (f[i][j - 1][1] + f[i][j][1]) % 998244353;     }     return;   }   int main() {     n = gi();     for (int i = 1; i <= n; ++i) A[i] = gi();     if (A[1] != -1)       f[1][A[1]][0] = 1;     else       for (int i = 1; i <= 200; ++i) f[1][i][0] = 1;     Merge(1);     for (int i = 2; i <= n; ++i) {       for (int j = 1; j <= 200; ++j)         if (A[i] == -1 || A[i] == j) {           f[i][j][1] =               (f[i - 1][j][0] - f[i - 1][j - 1][0] + 998244353) % 998244353;           f[i][j][1] =               (f[i][j][1] +                (f[i - 1][200][1] - f[i - 1][j - 1][1] + 998244353) % 998244353) %               998244353;           f[i][j][0] = (f[i - 1][j - 1][0] + f[i - 1][j - 1][1]) % 998244353;         }       Merge(i);     }     cout << f[n][200][1] << endl;     return 0;   }   