Cod sursa(job #3354851)

Utilizator IvanAndreiIvan Andrei IvanAndrei Data 20 mai 2026 23:40:06
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.51 kb
#include <bits/stdc++.h>

// 20.05 - habemus generatie noua de admini infoarena

using namespace std; 

const int max_size = 5e4 + 20, INF = 1e9 + 7;

string s;
int pos, sp[max_size];

int nextInt ()
{
    int sgn = 1, val = 0;
    while (s[pos] == ' ')
    {
        pos++;
    }
    while (s[pos] == '-')
    {
        sgn = -sgn;
        pos++;
    }
    while (isdigit(s[pos]))
    {
        val = val * 10 + (s[pos] - '0');
        pos++;
    }
    return sgn * val;
}

void solve ()
{
    int n, k;
    cin >> n >> k;
    cin.get();
    getline(cin, s);
    int mn = 0, idx = 0, ans = -INF, l = 1, r = 1;
    for (int i = 1; i <= n; i++)
    {
        int x = nextInt();
        sp[i] = sp[i - 1] + x;
        if (k <= i)
        {
            if (sp[i - k] < mn)
            {
                mn = sp[i - k];
                idx = i - k;
            }
            if (sp[i] - mn > ans)
            {
                ans = sp[i] - mn;
                l = idx + 1;
                r = i;
            }
        }
    }
    cout << l << " " << r << " " << ans << '\n';
}

signed main() 
{ 
#ifdef LOCAL 
    freopen("test.in", "r", stdin); 
    freopen("test.out", "w", stdout);
#else
    freopen("secv2.in", "r", stdin);
    freopen("secv2.out", "w", stdout);
#endif // LOCAL 
    ios_base::sync_with_stdio(false); 
    cin.tie(0); 
    cout.tie(0); 
    long long tt; 
    tt = 1;
    //cin >> tt;
    while (tt--)
    {
        solve();
    }
    return 0; 
}