Cod sursa(job #855405)

Utilizator TheShadowsAlexandru Cristian TheShadows Data 14 ianuarie 2013 22:08:17
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>
using namespace std;
const int LIM = 50005;
int c[LIM];
int main(){
    FILE *in=fopen("secv2.in","r"), *out=fopen("secv2.out","w");
    int n, max=-1, maxa, maxb, l, current=-1, 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];
            /*if(clen==l){
                current-=c[ca];
                ca++;
            }*/
            clen++;
        }
        if(current>max&&clen>=l){
            max=current; maxa=ca; maxb=i;
        }
    }
    if(!pp)
        fprintf(out, "%d %d %d\n", mp, mp, mmax);
    else
        fprintf(out, "%d %d %d\n", maxa, maxb, max);
    return 0;
}