Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include <cstdio>
  2. #include <deque>
  3.  
  4. using namespace std;
  5. #define s second
  6. #define f first
  7. const int mx=1e5+7;
  8. int n, pt;
  9. int ciag[mx];
  10. int wyn[mx];
  11. deque <int> d;
  12.  
  13. void gasieniczka(){
  14. d.push_back(0);
  15. int x=0;
  16. for(int y=1; y<n; y++){
  17. wyn[y]=wyn[d.front()];
  18. int zm=ciag[y], zm2=ciag[d.front()];
  19.  
  20. if(zm2<=zm)
  21. wyn[y]++;
  22. printf("i=%d w=%d\n",y,wyn[y]);
  23. while(!d.empty()){
  24. if(zm2>=zm){
  25. if(zm>zm){
  26. d.pop_back();
  27. }
  28. else{
  29. if(zm2<zm)
  30. d.pop_back();
  31. else
  32. break;
  33. }
  34. }
  35. else
  36. break;
  37. }
  38. d.push_back(y);
  39. if(y-x>=pt){
  40. if(d.front()==x)
  41. d.pop_front();
  42. x++;
  43. }
  44. }
  45. }
  46.  
  47.  
  48. int main(){
  49. scanf("%d",&n);
  50. for(int i=0; i<n; i++){
  51. scanf("%d",&ciag[i]);
  52. }
  53. int q;
  54. scanf("%d",&q);
  55. while(q--){
  56. scanf("%d",&pt);
  57. gasieniczka();
  58. printf("%d\n",wyn[n-1]);
  59. for(int i=0; i<n; i++)
  60. wyn[i]=0;
  61. d.clear();
  62. }
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement