#include<bits/stdc++.h> usingnamespace std; using ll = longlong; voidsolve() { int n, q; cin >> n >> q; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; }
vector<ll> pre(n + 1); for (int i = 0; i < n; i++) { pre[i + 1] = pre[i] + a[i]; }
auto query = [&](ll m) { int u = m / n; ll res = pre[n] * u; int v = m % n; if (v > 0) { if (u + v <= n) { res += pre[u + v] - pre[u]; } else { res += pre[u + v - n] + pre[n] - pre[u]; } } return res; };
while (q--) { ll l, r; cin >> l >> r; l--; ll ans = query(r) - query(l); cout << ans << "\n"; } } intmain() { int t; cin >> t; while (t--) { solve(); } }
#include<bits/stdc++.h> usingnamespace std; using ll = longlong; voidsolve() { int n, k, q; cin >> n >> k >> q;
vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; a[i] += n - i - 1; }
vector<int> f(n - k + 1);
vector<int> cnt(2 * n), freq(n + 1); freq[0] = 2 * n; int res = 0; for (int i = 0; i < k - 1; i++) { freq[cnt[a[i]]]--; res = max(res, ++cnt[a[i]]); freq[cnt[a[i]]]++; } for (int i = 0; i <= n - k; i++) { freq[cnt[a[i + k - 1]]]--; res = max(res, ++cnt[a[i + k - 1]]); freq[cnt[a[i + k - 1]]]++;