Cod sursa(job #1903073)

Utilizator herbertoHerbert Mohanu herberto Data 4 martie 2017 23:01:11
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
using namespace std;

#define INF 2000000000
#define MAXN 50001

int v[MAXN];
int main(){
  FILE*fin=fopen("secv2.in", "r");
  FILE*fout=fopen("secv2.out", "w");
  int n, k, i, st, dr, pozst, pozdr, max, s;
  fscanf(fin, "%d%d", &n, &k);
  max=-INF; s=-INF;
  for(i=1; i<=n; i++){
    fscanf(fin, "%d", &v[i]);
    if(s<0){
      s=0;
      st=i;
    }
    s+=v[i];
    if(i-st+1>=k && s>max){
      max=s;
      pozst=st;
      pozdr=i;
    }
  }
  if(s==-INF){
    s=0;
    for(i=1; i<=k; i++)
      s+=v[i];
    max=s;
    pozst=1; pozdr=k;
    for(i=k+1; i<=n; i++){
      s=s-v[i-k]+v[i];
      if(s>max)
        max=s;
    }
  }
  fprintf(fout, "%d %d %d", pozst, pozdr, max);
  return 0;
}