Cod sursa(job #568106)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 30 martie 2011 20:18:03
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda 102 Marime 0.77 kb
#include <stdio.h>
FILE *f=fopen("secv2.in","r");
FILE *g=fopen("secv2.out", "w");
int n,k,sum[50001],max=-999999999,min = 999999999,pozmin = -1,start = -1,end = -1,number;

int main(void){
	register int i,j;
	
	fscanf(f, "%d %d", &n, &k);
	for(i=0;i<n;i++) {
		fscanf(f, "%d ", &number);
		sum[i] = (i==0)?number:(sum[i-1]+number);
		if(sum[i]<min){
			min = sum[i];
			pozmin = i;
		}
		if(i+1>=k){
			if(start==-1){
				max=sum[i];
				start=1;
				end=i+1;
			}
			if(i-pozmin>=k){
				if(sum[i]-sum[pozmin]>max) {
					max=sum[i]-sum[pozmin];
					start=pozmin+2;
					end=i+1;
				}
			}
			if(sum[i]>max){
				max=sum[i];
				start=1;
				end=i+1;
			}
		}
	}
	fclose(f);
	
	fprintf(g, "%d %d %d\n",start,end,max);
	fclose(g);
	return 0;
}