Cod sursa(job #2478032)

Utilizator Victor2006Nicola Victor-Teodor Victor2006 Data 21 octombrie 2019 16:02:42
Problema Secventa 2 Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#define N 50000
#define INF 1500000

int s[N + 1];
int a[N + 1];

int oof( int a, int b ) {
  if ( a > b )
    return a;
  return b;
}

int main() {
  FILE *fin, *fout;
  int n, k, i, sc, smax, stmax, drmax, stc;
  fin = fopen( "secv2.in", "r" );
  fscanf( fin, "%d%d", &n, &k );
  for ( i = 1; i <= n; i ++ ) {
    fscanf( fin, "%d", &a[i] );
    s[i] = s[i - 1] + a[i];
  }
  sc = smax = s[k];
  stc = stmax = 1;
  drmax = k;
  for ( i = k + 1; i <= n; i ++ ) {
    fscanf( fin, "%d", &a[i] );
    s[i] = s[i - 1] + a[i];
    if ( s[i] - s[i - k] > sc + a[i] ) {
      sc = s[i] - s[i - k];
      stc = i - k + 1;
    } else {
      sc += a[i];
    }
    if ( sc > smax ) {
        smax = sc;
        stmax = stc;
        drmax = i;
    }
  }
  fclose( fin );

  fout = fopen( "secv2.out", "w" );
  fprintf( fout, "%d %d %d\n", stmax, drmax, smax );
  fclose( fout );
  return 0;
}