Cod sursa(job #855412)

Utilizator TheShadowsAlexandru Cristian TheShadows Data 14 ianuarie 2013 22:15:53
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
using namespace std;
const int LIM = 50005, MAX = 110000;
int c[LIM];
int main(){
    FILE *in=fopen("secv2.in","r"), *out=fopen("secv2.out","w");
    int n, max=-MAX, maxa, maxb, l, current=-MAX, ca, clen, mmax=5, mp;
    fscanf(in, "%d %d", &n, &l);
    clen=0; bool pp=false;
    for(int i=1; i<=n; i++){
        fscanf(in, "%d", &c[i]); if(c[i]>0) pp=true;
        if(!pp&&(mmax==5||mmax<c[i]))
            {mmax=c[i]; mp=i;}
        if(current<0){
            current=c[i];
            clen=1;
            ca=i;
        } else{
            current+=c[i];
            clen++;
        }
        if(current>max&&clen>=l){
            max=current; maxa=ca; maxb=i;
        }
    }
    if(!pp){
        mmax=0;
        for(int i=1; i<=l; i++)
            mmax+=c[i];
        fprintf(out, "%d %d %d\n", 1, l, mmax);
    }
    else
        fprintf(out, "%d %d %d\n", maxa, maxb, max);
    return 0;
}