This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
# include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 2;
long long n, q, d[N], p[1001][1001];
int main(){
cin >> n >> q;
int cn = 0;
for(int i = 1; i <= n; i ++){
cin >> d[i];
if(d[i] == 1) cn ++;
}
if(cn == n){
for(int i = 1; i <= q; i ++){
int t, l, r;
cin >> t >> l >> r;
int L = t - n, R = t;
if(l > R || L > r) {
cout << 0 << endl;
continue;
}
if(l <= L && R <= r){
cout << R - L + 1 << endl;
continue;
}
if(l <= L && L <= r){
cout << r - L + 1 << endl;
continue;
}
if(l <= R && R <= r){
cout << R - l + 1 << endl;
continue;
}
if(L <= l && r <= R){
cout << r - l + 1 << endl;
continue;
}
}
return 0;
}
for(int i = 0; i <= 1000; i ++){
if(i == 0){
for(int j = 1; j <= n; j ++)
p[i][j] = -j;
} else {
p[i][0] = i;
for(int j = 1; j <= n; j ++){
p[i][j] = p[i - 1][j];
if(p[i][j - 1] - p[i][j] > d[j])
p[i][j] = p[i][j - 1] - 1;
}
}
}
for(int i = 1; i <= q; i ++){
int t, l, r;
cin >> t >> l >> r;
int cn = 0;
for(int j = 0; j <= n; j ++){
if(p[t][j] >= l && p[t][j] <= r) cn ++;
}
cout << cn << endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |