Cod sursa(job #1144251)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 16 martie 2014 20:01:46
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>

using namespace std;
int lis[50010][3];
int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    int n,i,max=-25001,a,b=0,k,p;
    a=1;
    scanf("%d%d",&n,&p);
    scanf("%d",&lis[1][0]);
    lis[1][1]=1;
    lis[1][2]=1;
    max=lis[0][0];
    b=1;
    for(i=2;i<=n;i++)
    {
        scanf("%d",&k);
        if(lis[i-1][0]+k<k)
        {
            lis[i][0]=k;
            lis[i][1]=i;
            lis[i][2]=1;
        }
        else
        {
            lis[i][0]=lis[i-1][0]+k;
            lis[i][1]=lis[i-1][1];
            lis[i][2]=lis[i-1][2]+1;
        }
        if(lis[i][0]>max&&lis[i][2]>=p)
        {
            max=lis[i][0];
            a=lis[i][1];
            b=i;
        }
    }
    if(a==1&&b==1&&b-a!=p)
    {   b=p;
        for(i=1;i<=p;i++) max+=lis[i][0];
    }
    printf("%d %d %d",a,b,max);
}