Cod sursa(job #1813369)

Utilizator CojocariuAlexandruCojocariu Alexandru CojocariuAlexandru Data 22 noiembrie 2016 21:55:13
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <cstdio>

using namespace std;

FILE *fin = fopen("secv2.in", "r");
FILE *fout = fopen("secv2.out", "w");

void citire();
void pd();

int n, k, pozst, pozdr, smax, nr[50005];

//INAINTE DE GOTO NU MERGEAU PROBLEMELE DE PROGRAMARE
//DINAMICA DAR ACUM CA NU MAI FOLOSESC FOR, WHILE SI
//DO WHILE, SUNT DIN NOU UN OM FERICIT
//MULTUMESC GOTO LOOP!

int main(){
    citire();
    pd();
    fprintf(fout, "%d ", pozst);
    fprintf(fout, "%d ", pozdr);
    fprintf(fout, "%d\n", smax);
    fclose(fin);
    fclose(fout);
    return 0;
}

void citire(){
    int i, x;
    fscanf(fin, "%d", &n);
    fscanf(fin, "%d", &k);
    i=1;
    loop1:
       fscanf(fin, "%d", &x);
       nr[i] = x;
       i++;
       if(i < n+1)
    goto loop1;
}

void pd(){
    int i=1, suma=0;
    loop2:
        suma+=nr[i];
        if(suma >= smax){
            smax = suma;
            pozdr = i;
            }
        i++;
        if(i < n+1)
    goto loop2;

    i = pozdr;
    suma = 0; smax = 0;
    loop3:
        suma += nr[i];
        if(suma >= smax && pozdr - i >= k){
            smax = suma;
            pozst = i;
            }
        i--;
        if(i >= 0)
    goto loop3;
}