Advertisement
a53

Placinte

a53
Mar 24th, 2020
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. long long n,x,t[50],smax,sx,sum[50];
  4.  
  5. int main()
  6. {
  7. cin>>n>>x;
  8. for(int i=1;i<=n;++i)
  9. {
  10. cin>>t[i];
  11. if(i>1&&t[i]>2*t[i-1])
  12. t[i]=2*t[i-1];
  13. }
  14. for(int i=n+1;i<=32;++i)
  15. t[i]=2*t[i-1];
  16. for(int i=0;i<32;++i)
  17. if(x&(1ll<<i))
  18. {
  19. sx=sx+t[i+1];
  20. if(i==0)
  21. sum[i]=t[i+1];
  22. else
  23. sum[i]=sum[i-1]+t[i+1];
  24. }
  25. else
  26. if(i==0)
  27. sum[i]=0;
  28. else
  29. sum[i]=sum[i-1];
  30. smax=sx;
  31. for(int i=0;i<=31;++i)
  32. if((x&(1ll<<i))==0)
  33. if(i==0) smax=sx+t[1];
  34. else
  35. if(smax>sx+t[i+1]-sum[i])
  36. smax=sx+t[i+1]-sum[i];
  37. cout<<min(sx,smax)<<'\n';
  38. return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement