Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 2 3 1 1
- long long I = 0;
- for (int i = 1; i <= N; ++i) {
- if (i > 1 && a[i] >= a[i-1]) {
- inf[i] = max(inf[i-1], i - K);
- } else {
- inf[i] = i;
- }
- I += i - inf[i];
- for (int j = i - 1; j ; j -= j & -j) {
- inb[j]++;
- }
- for (int j = inf[i] - 1; j ; j -= j & -j) {
- inb[j]--;
- }
- if (i > K) {
- long long cnt = 0;
- for (int j = i - K; j <= N; j += j & -j) {
- cnt += inb[j];
- }
- I -= cnt;
- }
- if (i >= K) {
- printf("%lldn", I );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement