Cod sursa(job #1106200)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 12 februarie 2014 17:15:55
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
using namespace std;
ifstream f("fluviu.in");
ofstream g("fluviu.out");
int n,i,a[3][50001],pa[50001],ph[50001],ah[50001],cv[50001],ce[50001],cm[50001];
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>pa[i];
    for(i=1;i<=n;i++)
        f>>ph[i];
    for(i=1;i<=n;i++)
        f>>ah[i];
    for(i=1;i<n;i++)
        f>>cv[i];
    for(i=1;i<n;i++)
        f>>cm[i];
    for(i=1;i<n;i++)
        f>>ce[i];
    a[1][1]=pa[1];
    a[2][1]=ph[1];
    for(i=2;i<=n;i++)
    {
        a[0][i]=min(a[0][i-1]+cv[i-1],min(a[1][i-1]+cv[i-1]+pa[i-1],a[2][i-1]+cv[i-1]+ph[i-1]));
        a[1][i]=min(a[1][i-1]+cm[i-1],min(a[0][i-1]+cm[i-1]+pa[i-1],a[2][i-1]+cm[i-1]+ah[i-1]));
        a[2][i]=min(a[2][i-1]+ce[i-1],min(a[0][i-1]+ce[i-1]+ph[i-1],a[1][i-1]+ce[i-1]+ah[i-1]));
        a[0][i]=min(a[0][i],min(a[1][i]+pa[i],a[2][i]+ph[i]));
        a[1][i]=min(a[1][i],min(a[0][i]+pa[i],a[2][i]+ah[i]));
        a[2][i]=min(a[2][i],min(a[0][i]+ph[i],a[2][i]+ah[i]));
    }
    g<<min(a[0][n],min(a[1][n],a[2][n]));
}