Cod sursa(job #3303690)

Utilizator TudorAndreiHhHerta Tudor TudorAndreiHh Data 17 iulie 2025 12:11:58
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;

const int max_n = 6e6;
int s[max_n+1];
int main()
{
    #ifndef LOCAL
    freopen("secv2.in", "r", stdin);
    freopen("secv2.out", "w", stdout);
    #endif

    int n, x, k;
    int min = 0;
    cin >> n>>k;
    
    for(int i = 1; i<= n; i++)
    {
        cin >> x;
        s[i] = s[i-1]+x;
    }
    int smax = s[n];
    int st = 1, dr = n;
    for(int i = k; i<= n; i++)
    {
        if(s[i-k] < s[min])min = i-k;
        if(s[i]- s[min] > smax)
        {
            smax = s[i] - s[min];
            st = min+1;
            dr = i;
        }
    }
    cout << st <<" "<< dr<<" "<<smax;
    return 0;
}

/*Aplicăm aceeași idee ca pentru problema anterioară, dar parcurgem secvențele de lungime k, în loc să aplicăm minim*/