Advertisement
a53

Back to the Himalayas

a53
Feb 6th, 2021
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int v[500005],stiva[500005],rez[500005];
  4.  
  5. int main()
  6. {
  7. std::ios_base::sync_with_stdio(false);
  8. std::cin.tie(0);
  9. std::cout.tie(0);
  10. int n,v1,poz=0;
  11. string m;
  12. cin>>n>>m>>v1;
  13. int maxim=v1*v1/20;
  14. for(int i=1;i<=n;++i)
  15. cin>>v[i];
  16. for(int i=n;i>=1;--i)
  17. {
  18. while(poz>=1&&v[stiva[poz]]<=v[i])
  19. --poz;
  20. ++poz;
  21. stiva[poz]=i;
  22. int st=1,dr=poz,mij,val=n;
  23. while(dr>=st)
  24. {
  25. mij=(st+dr)/2;
  26. if(v[stiva[mij]]>v[i]+maxim)
  27. val=stiva[mij]-1,st=mij+1;
  28. else
  29. dr=mij-1;
  30. }
  31. rez[i]=val;
  32. }
  33. for(int i=1;i<=n;++i)
  34. cout<<rez[i]<<' ';
  35. cout<<'\n';
  36. return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement