// f[i]表示以第i个电塔结尾公差为d的等差数列的个数
// f[i] = g[h[i]-d];
// g[h[i]] = (f[i] + g[h[i]]) % MOD;
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000 + 5;
const int MAXV = 20000;
const long long MOD = 998244353;
int h[MAXN];
int f[MAXV * 2], g[MAXV * 2];
int main() {
int n, ans = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> h[i];
}
for (int i = -MAXV; i <= MAXV; i++) {
g[i + MAXV] = 1;
}
for (int d = -MAXV; d <= MAXV; d++) { //枚举公差d
for (int i = 1; i <= n; i++) {
f[i + MAXV] = g[h[i] - d + MAXV];
g[h[i] + MAXV] = (f[i + MAXV] + g[h[i] + MAXV]) % MOD;
}
}
for (int i = -MAXV; i <= MAXV; i++) {
ans = (f[i + MAXV] + ans) % MOD;
}
cout << ans;
return 0;
}
样例都没过,wtcl/kk