Cod sursa(job #2015949)

Utilizator AlexandruLuchianov1Alex Luchianov AlexandruLuchianov1 Data 28 august 2017 10:59:24
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;
ifstream in ("secv2.in");
ofstream out ("secv2.out");
int const nmax = 50000;
int v[1 + nmax];
queue <int> q;

int main()
{
  int n ,k;
  in>>n>>k;
  int smax ,st = 1, dr = k;
  int a , sum = 0;
  int rebootsum = 0 ,elmboot = 0;

  for(int i = 1 ;i <= n ;i++)
    in>>v[i];

  for(int i = 1 ; i <= k;i++){
    q.push(v[i]);
    sum += v[i];
  }
  smax = sum;
  for(int i = k + 1 ; i <= n ;i++){
    rebootsum += q.front();
    elmboot++;
    q.pop();
    q.push(v[i]);
    sum += v[i];
    if(rebootsum <= 0){
      elmboot = 0;
      sum -= rebootsum;
      rebootsum = 0;
    }
    if(smax < sum){
      smax = sum;
      st = i - k - elmboot + 1;
      dr = i;
    }
  }
  out<<st<<" "<<dr<<" "<<smax<<'\n';
  return 0;
}