Cod sursa(job #1382830)

Utilizator margikiMargeloiu Andrei margiki Data 9 martie 2015 16:44:41
Problema Ferma Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
# include <fstream>
# include <algorithm>
# define NR 12000
# define inf -999999999
using namespace std;
ifstream f("ferma.in");
ofstream g("ferma.out");
int i,j,n,m,x,k,maxx;
int a1[NR], a2[NR], a3[NR], b1[NR], b2[NR], b3[NR];
int main ()
{
    f>>n>>k;

    for (j=0; j<=k+1; ++j)
    {
        a1[j]=inf; a2[j]=inf; a3[j]=inf;
                   b2[j]=inf; b3[j]=inf;
    }
    a2[0]=b2[0]=0;

    for (i=1; i<=n; ++i)
    {
        f>>x;
        for (j=1; j<=k+1; ++j)
        {
            a3[j]=max(a2[j]+x, max(a1[j-1], b2[j-1])+x);
            b3[j]=max(a2[j], b2[j]);
        }
        for (j=1; j<=k+1; ++j)
        {
            a1[j]=a2[j]; a2[j]=a3[j]; a3[j]=inf;
                         b2[j]=b3[j]; b3[j]=inf;
        }
    }
    maxx=max (a2[k], a2[k+1]);
    maxx=max (maxx, b2[k]);

    if (maxx<0) g<<"0\n";
           else g<<maxx<<"\n";

    return 0;
}