Cod sursa(job #48216)

Utilizator bvaliValentin Bora bvali Data 4 aprilie 2007 15:01:10
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

FILE *fout = fopen("secv2.out", "w");
short n, k, a[50001];
long sum[50001];
void solve(){
    long max=-1250000000;
    short i, pozmax=0, start, end;
    FILE *fin = fopen("secv2.in", "r");
    fscanf(fin, "%hi %hi", &n, &k);
    for(i=1; i<=n; i++){
	fscanf(fin, "%hi", &a[i]);
	if(i == 1)
	    sum[i] = a[i];
	else
	    sum[i] = sum[i-1]+a[i];
	if(sum[i] > max){
	    max = sum[i];
	    pozmax = i;
	}
    }
    end = pozmax;
    start = pozmax-k;
    for(i=pozmax-k-1; i>=1; i--)
	if(sum[end]-sum[i] > sum[end]-sum[start])
	    start = i;
    fprintf(fout, "%hi %hi %li", start+1, end, sum[end]-sum[start]);
    fclose(fin);
}

int main(){
    solve();
    fclose(fout);
    return 0;
}