Cod sursa(job #2457357)

Utilizator driver71528@gmail.comTerec Andrei-Sorin [email protected] Data 17 septembrie 2019 15:41:45
Problema Secventa 2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("secv2.in");
ofstream g("secv2.out");
typedef long long ll;
int x[50001],n,k;
void solve()
{
    int st,dr,bst,bdr;
    st=bst=1;
    dr=bdr=k;
    ll maxim,curent;
    maxim=curent=0;
    for(int i=1;i<=dr;i++)
        maxim=curent=curent+x[i];
    while(dr<n)
    {
        if(dr-st==k-1 || x[dr+1]>-x[st])
            curent+=x[++dr];
        else
            curent-=x[st++];
        if(curent>maxim)
        {
            bst=st;
            bdr=dr;
            maxim=curent;
        }
    }
    g<<bst<<' '<<bdr<<' '<<maxim;
}


int main()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
        f>>x[i];
    solve();
    f.close();
    g.close();
    return 0;
}