Advertisement
lelbaba

Untitled

Apr 2nd, 2020
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int arr[1005];
  4. int n;
  5. long long int prev(int i)
  6. {
  7. long long int s=0;
  8. if (i==0) return arr[0];
  9. int minn = arr[i];
  10. int j=i;
  11. while(j>=0)
  12. {
  13. minn=min(arr[j],minn);
  14. s+=minn;
  15. j--;
  16. }
  17. return s;
  18. }
  19. long long int aft(int i)
  20. {
  21. long long int s=0;
  22. if (i==n-1) return 0;
  23. int minn = min(arr[i],arr[i+1]);
  24. int j=i+1;
  25. while(j<n)
  26. {
  27. minn=min(arr[j],minn);
  28. s+=minn;
  29. j++;
  30. }
  31. return s;
  32. }
  33. int tot()
  34. {
  35. long long int s = prev(0)+aft(0);
  36. int x=0;
  37. int i=0;
  38. while(i<n)
  39. {
  40. if(s<(prev(i)+aft(i)))
  41. {
  42. s=prev(i) + aft(i);
  43. x=i;
  44. }
  45. i++;
  46. }
  47. return x;
  48. }
  49. int main()
  50. {
  51. int n;
  52. ios_base::sync_with_stdio(false);
  53. cin.tie(NULL);
  54. cin>>n;
  55. for(int i=0;i<n;i++) cin>>arr[i];
  56. int x=tot();
  57. int j=x-1;
  58. int minn=arr[x];
  59. while(j>=0)
  60. {
  61. minn= min(minn,arr[j]);
  62. arr[j]=minn;
  63. j--;
  64. }
  65. j=x+1;
  66. minn=arr[x];
  67. while(j<n)
  68. {
  69. minn= min(minn,arr[j]);
  70. arr[j]=minn;
  71. j++;
  72. }
  73. for(int i=0;i<n;i++) cout<<arr[i]<<" ";
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement