提交记录
#include <iostream>
#define int long long
using namespace std;
int a[1000100], mod = 998244353, n, q;
inline int f(int x)
{
return x % n + 1;
}
int s[2010][2010];
inline void init()
{
s[0][1] = 1;
for (int i = 1; i <= 2000; ++i)
{
for (int j = 1; j <= i; ++j)
{
s[i][j] = (s[i - 1][j - 1] + s[i - 1][j]) % mod;
}
}
}
signed main()
{
init();
cin >> n;
for (int i = 1; i <= n; ++i) cin >> a[i];
cin >> q;
for (int i = 1; i <= q; ++i)
{
int x, y, sum = 0;
cin >> x >> y;
for (int j = 0; j < x; ++j)
{
int u = ((y + j > n) ? y + j - n : y + j);
sum = (sum + (a[u] + a[f(u)]) * s[x][j + 1]) % mod;
}
cout << sum << "\n";
}
return 0;
}