Cod sursa(job #2478042)

Utilizator Victor2006Nicola Victor-Teodor Victor2006 Data 21 octombrie 2019 16:17:29
Problema Secventa 2 Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.93 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;

}