Cod sursa(job #1341265)

Utilizator akaprosAna Kapros akapros Data 12 februarie 2015 16:27:33
Problema BMatrix Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#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;
}