Cod sursa(job #1848345)

Utilizator cyg_vladioanBirsan Vlad cyg_vladioan Data 15 ianuarie 2017 22:05:44
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
using namespace std;
const int NMAX = 50000;
int v[NMAX + 5];
int main()
{
    freopen("secv2.in" , "r" , stdin);
    freopen("secv2.out" , "w" , stdout);
    int n , k , i , st , dr , smax , stf , drf , sc;
    scanf("%d%d" , &n , &k);
    for(i = 1 ; i <= n ; i ++)
        scanf("%d" , &v[i]);
    smax = -25000;
    sc = 0;
    for(dr = st = 1 ; dr <= n ; dr ++)
    {
        if(dr - st + 1 < k)
            sc = sc + v[dr];
        if(dr - st + 1 >= k)
        {
            if(sc + v[dr] < v[dr])
                while(dr - st >= k && sc + v[dr] < v[dr])
                {
                    sc = sc - v[st];
                    st ++;
                }
            sc = sc + v[dr];
            if(sc > smax)
                smax = sc , stf = st , drf = dr;
        }
    }
    printf("%d %d %d\n" , stf , drf , smax);
    return 0;
}