Submission #47452

#TimeUsernameProblemLanguageResultExecution timeMemory
47452mirbek01Worst Reporter 3 (JOI18_worst_reporter3)C++17
12 / 100
2070 ms8472 KiB
# 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...