Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. #define mini -100000
  5. int main(){
  6. int h, x, y, n=1, sum=0;
  7. cin>>h>>x>>y;
  8. while(n<h)
  9. n*=2;
  10. int a[2*n], b[2*n];
  11. for(int i=1; i<=h; i++){
  12. cin>>a[i+n-1];
  13. b[i+n-1]=i;
  14. }
  15. for(int i=h+1; i<=n; i++){
  16. a[i+n-1]=mini;
  17. b[i+n-1]=i;
  18. }
  19. for(int i=n-1; i>0; i--){
  20. if(a[i*2]>a[i*2+1]){
  21. a[i]=a[i*2];
  22. b[i]=b[i*2];
  23. }
  24. else{
  25. a[i]=a[i*2+1];
  26. b[i]=b[i*2+1];
  27. }
  28. }
  29. // cout<<a[1]<<endl;
  30. while(a[1]>0){
  31. for(int i=1; i<=n; i++){
  32. a[i+n-1]-=y;
  33. }
  34. a[b[1]+n-1]-=x-y;
  35. for(int i=n-1; i>0; i--){
  36. if(a[i*2]>a[i*2+1]){
  37. a[i]=a[i*2];
  38. b[i]=b[i*2];
  39. }
  40. else{
  41. a[i]=a[i*2+1];
  42. b[i]=b[i*2+1];
  43. }
  44. }
  45. /* cout<<"max(a): "<<a[1]<< " max(b):"<<b[1]<<endl;
  46. for(int i=n; i<=n+h-1; i++)
  47. cout<<a[i]<<' ';
  48. cout<<endl; */
  49. sum++;
  50. }
  51. cout<<sum;
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement