Cod sursa(job #203369)

Utilizator drag0shSandulescu Dragos drag0sh Data 15 august 2008 21:11:49
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

#define MAX 50001

FILE *f,*g;
long n,k;
int v[MAX];
long s[MAX],miny[MAX],maxy[MAX];

long min(long a,long b){
  if(s[a]<s[b])return a;
  return b;
}

long max(long a,long b){
  if(s[a]<s[b])return b;
  return a;
}

long maxim(long a,long b){
  if(a<b)return b;
  return a;
}

void citire(){
  long i;
  fscanf(f,"%ld %ld",&n,&k);
  for(i=1;i<=n;i++)fscanf(f,"%d",&v[i]);
}



int main(){
  f=fopen("secv2.in","r");
  g=fopen("secv2.out","w");
  
  long i;
  citire();

  for(i=1;i<=n;i++)s[i]=s[i-1]+v[i];
  miny[1]=1;
  maxy[n]=n;
  for(i=2;i<=n;i++){ 
    miny[i]=min(miny[i-1],i);
    maxy[n-i+1]=max(n-i+1,maxy[n-i+2]);
  }
  long d1,d2,dif;
  d1=1;
  d2=k;
  dif=s[k];
  for(i=2;i<=n-k+1;i++) 
    if(s[i+k-1]-s[i]>dif){
      dif=s[i+k-1]-s[i];
      d1=i;
      d2=i+k-1;
    }
  fprintf(g,"%ld %ld %ld",d1,d2,dif);

  fclose(f);
  fclose(g);
  return 0;
}