Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. 1 2 3 1 1
  2.  
  3. long long I = 0;
  4. for (int i = 1; i <= N; ++i) {
  5. if (i > 1 && a[i] >= a[i-1]) {
  6. inf[i] = max(inf[i-1], i - K);
  7. } else {
  8. inf[i] = i;
  9. }
  10. I += i - inf[i];
  11. for (int j = i - 1; j ; j -= j & -j) {
  12. inb[j]++;
  13. }
  14. for (int j = inf[i] - 1; j ; j -= j & -j) {
  15. inb[j]--;
  16. }
  17. if (i > K) {
  18. long long cnt = 0;
  19. for (int j = i - K; j <= N; j += j & -j) {
  20. cnt += inb[j];
  21. }
  22. I -= cnt;
  23. }
  24.  
  25. if (i >= K) {
  26. printf("%lldn", I );
  27. }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement