Pagini recente » Cod sursa (job #298010) | Cod sursa (job #257755) | Cod sursa (job #3202007) | Cod sursa (job #1589022) | Cod sursa (job #1341265)
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 48
using namespace std;
int n,i,j;
unsigned long long a,b,d[2][Nmax+5],p[Nmax+5],sol;
int main()
{
freopen("hacker3.in","r",stdin);
freopen("hacker3.out","w",stdout);
scanf("%d",&n); p[0]=1;
for (i=1;i<=Nmax;i++) p[i]=p[i-1]*2*1LL;
sol=p[Nmax];
for (i=1;i<=n;i++)
{
scanf("%lld %lld",&a,&b);
d[i%2][0]=d[(i-1)%2][0]+b;
if (i==n)
sol=min(sol,min(d[i%2][0],d[i%2][1]));
for (j=1;j<=Nmax;j++)
{
d[i%2][j]=min(d[(i-1)%2][j-1]+p[j-1]*a,d[(i-1)%2][j]+b*p[j]);
if (d[i%2][j]>1000000000000000)
d[i%2][j]=1000000000000000;
if (i==n)
sol=min(sol,d[i%2][j]);
}
}
printf("%lld",sol);
return 0;
}