Submission #69329893
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n, q;
cin >> n >> q;
vector<int> a(n);
for (int i=0; i<n; i++) cin >> a[i];
// ans(L, R) = sum[l=L..R](sum[r=l..R](p[r] - p[l-1]))
// = sum[l=L..R](-p[l-1] * (R-l+1) + sum[r=l..R](p[r]))
// = sum[l=L..R](l * p[l-1] - (R+1) * p[l-1] + p2[R] - p2[l-1])
// = sum[l=L..R](l * p[l-1]) - sum[l=L..R]((R+1) * p[l-1]) + (R-L+1) * p2[R] - p3[R-1] + p3[L-2]
// = p4[R] - p4[L-1] - (R+1) * (p2[R-1] - p2[L-2]) + (R-L+1) * p2[R] - p3[R-1] + p3[L-2]
vector<vector<long long>> p(4, vector<long long>(n+1, 0));
for (int i=1; i<=n; i++) p[0][i] = p[0][i-1] + a[i-1];
for (int i=1; i<=n; i++) p[1][i] = p[1][i-1] + p[0][i];
for (int i=1; i<=n; i++) p[2][i] = p[2][i-1] + p[1][i];
for (int i=1; i<=n; i++) p[3][i] = p[3][i-1] + p[0][i-1] * i;
while (q--) {
int l, r;
cin >> l >> r;
long long ans =
p[3][r] - p[3][l-1]
- (r+1) * (p[1][r-1] - (l-2 >= 0 ? p[1][l-2] : 0))
+ (r-l+1) * p[1][r]
- p[2][r-1] + (l-2 >= 0 ? p[2][l-2] : 0);
cout << ans << '\n';
}
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int tcs = 1;
// cin >> tcs;
while (tcs--) {
solve();
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Sum of Subarrays |
| User | Wie |
| Language | C++ 20 (gcc 12.2) |
| Score | 475 |
| Code Size | 1238 Byte |
| Status | AC |
| Exec Time | 91 ms |
| Memory | 16716 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 475 / 475 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample00.txt |
| All | sample00.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample00.txt | AC | 1 ms | 3444 KiB |
| testcase00.txt | AC | 1 ms | 3412 KiB |
| testcase01.txt | AC | 26 ms | 3520 KiB |
| testcase02.txt | AC | 45 ms | 5724 KiB |
| testcase03.txt | AC | 32 ms | 5520 KiB |
| testcase04.txt | AC | 35 ms | 10668 KiB |
| testcase05.txt | AC | 34 ms | 13956 KiB |
| testcase06.txt | AC | 14 ms | 4876 KiB |
| testcase07.txt | AC | 44 ms | 5956 KiB |
| testcase08.txt | AC | 75 ms | 16060 KiB |
| testcase09.txt | AC | 91 ms | 16100 KiB |
| testcase10.txt | AC | 84 ms | 16080 KiB |
| testcase11.txt | AC | 74 ms | 16088 KiB |
| testcase12.txt | AC | 73 ms | 16108 KiB |
| testcase13.txt | AC | 75 ms | 16100 KiB |
| testcase14.txt | AC | 55 ms | 16716 KiB |