Cod sursa(job #3310416)

Utilizator LucaEnescuLuca Enescu LucaEnescu Data 13 septembrie 2025 17:28:02
Problema Secventa 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>

using namespace std;
using int64 = long long;
const int N_MAX = 6e6;
const int64 myINF = 3e9;

 int v[1 + N_MAX],sum[N_MAX+1],min_sum[N_MAX+1],ind_sum[N_MAX+1];

ifstream fin ("secv2.in");
ofstream fout ("secv2.out");
int main()
{
   int n,k;
   fin >> n >> k;
   for (int i = 1; i <= n; i ++)
      fin >> v[i];
    for(int i=1;i<=n;i++){
        sum[i]=sum[i-1]+v[i];
    }
    for(int i=1;i<=n;i++){
        min_sum[i]=min(min_sum[i-1],sum[i]);
        if(sum[i]<min_sum[i-1])
            ind_sum[i]=i;
        else
            ind_sum[i]=ind_sum[i-1];
    }

   int j = 1;
   int64 answer = -myINF; int left, right;

   for (int i = k; i <= n; i ++) {
      int64 candidate = sum[i] - min_sum[i-k];
      j=ind_sum[i-k];
      if (candidate > answer) {
        answer = candidate;
       left = j;
        right = i;
      }
      else if (candidate == answer && j < left) {
        left = j;
        right = i;
      }


   }
   fout  << left << " " << right << " " <<  answer << " ";
    return 0;
}