Cod sursa(job #228226)

Utilizator razyelxrazyelx razyelx Data 6 decembrie 2008 19:23:04
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>    
long x[50],s[50],min[50],mm = -130000,a,b,i,j,n,k;
int main(){
    FILE*f=fopen("secv2.in","r");
    FILE*g=fopen("secv2.out","w");

    fscanf(f,"%ld %ld %ld",&n,&k,&x[1]);

    s[1] = x[1];
    min[1] = 1;


    for(i=2;i<=n;i++){

	fscanf(f,"%ld",&x[i]);
	s[i] = s[i-1] + x[i];

	if(s[i]<s[min[i-1]]) min[i] = i;
	else min[i] = min[i-1];

    }
    //mm = s[k];
    if(k==n) fprintf(g,"1 %ld %ld", n, s[n]);
    else{
    for(i=k;i<=n;i++)
       j=0;
       while(!(s[i] - s[min[i-1]-j] > mm && i-min[i-1]+1 >= k)){
	 if(s[i] - s[min[i-1]] > mm && i-min[i-1]+1 >= k){
	 a=min[i-1]+1;
	 b=i;
	 mm=s[i] - s[min[i-1]];
	 }j++;
       }



    fprintf(g,"%ld %ld %ld\n",a,b,mm);
    }
   return 0;
}