Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- long long n,x,t[50],smax,sx,sum[50];
- int main()
- {
- cin>>n>>x;
- for(int i=1;i<=n;++i)
- {
- cin>>t[i];
- if(i>1&&t[i]>2*t[i-1])
- t[i]=2*t[i-1];
- }
- for(int i=n+1;i<=32;++i)
- t[i]=2*t[i-1];
- for(int i=0;i<32;++i)
- if(x&(1ll<<i))
- {
- sx=sx+t[i+1];
- if(i==0)
- sum[i]=t[i+1];
- else
- sum[i]=sum[i-1]+t[i+1];
- }
- else
- if(i==0)
- sum[i]=0;
- else
- sum[i]=sum[i-1];
- smax=sx;
- for(int i=0;i<=31;++i)
- if((x&(1ll<<i))==0)
- if(i==0) smax=sx+t[1];
- else
- if(smax>sx+t[i+1]-sum[i])
- smax=sx+t[i+1]-sum[i];
- cout<<min(sx,smax)<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement