Cod sursa(job #2079426)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 1 decembrie 2017 12:43:53
Problema Ferma Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <algorithm>
#define INF 200000
using namespace std;
int v[10001];
int d[1002][10001],d2[1002][10001];
int main()
{
    FILE *fin=fopen ("ferma.in","r");
    FILE *fout=fopen ("ferma.out","w");
    int n,k,i,j,sol;
    fscanf (fin,"%d%d",&n,&k);
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    k++;
    //d[1][1]=v[1];
    for (i=1;i<=k;i++)
        d2[i][0]=d[i][0]=-INF;
    for (i=1;i<=n;i++)
        d2[0][i]=d[0][i]=-INF;
    sol=0;
    for (i=1;i<=k;i++){
        for (j=1;j<=n;j++){
            d[i][j]=max(d2[i-1][j-1],d[i][j-1])+v[j];
            d2[i][j]=max(d2[i][j-1],d[i][j-1]);
            if (i==k-1)
                sol=max(sol,d[k-1][j]);
        }
    }
    sol=max(d[k][n],sol);
    fprintf (fout,"%d",sol);
    return 0;
}