# 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;
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1619 ms |
7380 KB |
Output is correct |
2 |
Execution timed out |
2070 ms |
7440 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
8272 KB |
Output is correct |
2 |
Correct |
12 ms |
8304 KB |
Output is correct |
3 |
Correct |
11 ms |
8328 KB |
Output is correct |
4 |
Correct |
33 ms |
8424 KB |
Output is correct |
5 |
Correct |
12 ms |
8472 KB |
Output is correct |
6 |
Correct |
12 ms |
8472 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1619 ms |
7380 KB |
Output is correct |
2 |
Execution timed out |
2070 ms |
7440 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |