Cod sursa(job #3316824)

Utilizator magnifica5Tabarca Ioana magnifica5 Data 21 octombrie 2025 11:36:58
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int sum[6000001], maxs[6000001], v[6000001];
int main()
{
   int n, x, maxi = INT_MIN, k;
   cin >> n >> k;
   for(int i = 1; i <= n; i ++){
       cin >> v[i];
       sum[i] = sum[i - 1] + v[i];
   }
   maxs[k] = sum[k];
   int poz1 = 1, poz2 = k, fst = 1, sec = k;
   maxi = sum[k];
   for(int i = k + 1; i <= n; i ++){
       int sum1 = sum[i] - sum[i - k];
       int sum2 = maxs[i - 1] + v[i];
       if(sum1 > sum2){
          maxs[i] = sum1;
          poz1 = i - k + 1;
          poz2 = i;
       }
       else if(sum1 < sum2){
           maxs[i] = sum2;
           poz2 = i;
       }
       else if(sum1 == sum2){
           if(i - k + 1 <= poz1){
              maxs[i] = sum1;
              poz1 = i - k + 1;
              poz2 = i;
           }
           else{
              maxs[i] = sum2;
              poz2 = i;
           }
       }
       if(maxi < maxs[i]){
          maxi = maxs[i];
          fst = poz1;
          sec = poz2;
       }
   }
   cout << fst << ' ' << sec << ' ' << maxi;
}