大师 - 洛谷https://www.luogu.com.cn/problem/P4933
#pragma warning(disable:4996)
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
const int MAXN = 1000000;
int s[MAXN];
int dp[1005][40005];
const int mod = 998244353;
int main() {
int n;
scanf("%d", &n);
int p = 20000;
int ans = 0;
for (int i = 1; i <= n; i++) {
scanf("%d", s + i);
}
for (int i = 1; i <= n; i++) {
ans++;
for (int j = 1; j < i; j++) {
dp[i][s[i] - s[j] + p] += dp[j][s[i] - s[j] + p] + 1;
dp[i][s[i] - s[j] + p] %= mod;
ans += dp[j][s[i] - s[j] + p]+1;
ans %= mod;
}
}
printf("%d", ans);
return 0;
}