Cod sursa(job #1386251)

Utilizator razboi4Manole Iulian razboi4 Data 12 martie 2015 20:43:43
Problema Secventa Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<bits/stdc++.h>
using namespace std;
int N, K, el; char lol[560001], *sir = lol;
deque < pair < int, int > > D;
int char_to_int()
{
    int el = 0; bool sw = 0;
    if(*sir == '-') {
            sw = 1;
            ++ sir;
    }
    while(*sir >= '0' && *sir <= '9') {
        el = el * 10 + *sir - '0';
        ++ sir;
    }
    ++ sir;
    if(sw == 1)
        return -el;
    return el;
}
int main()
{
    int SOL = -30001, ind_SOL;
    freopen("secventa.in", "r", stdin);
    scanf("%d %d \n", &N, &K);
    gets(lol);
    for(int i = 1; i <= N; ++ i) {
        el = char_to_int();
        for( ; D.size() && D.back().first > el ; D.pop_back()) ;
        D.push_back(make_pair(el, i));
        if(i - D.front().second + 1> K)
            D.pop_front();
        if(i >= K && D.front().first > SOL) {
            SOL = D.front().first;
            ind_SOL = i;
        }
    }
    fprintf(fopen("secventa.out", "w"), "%d %d %d", ind_SOL - K + 1, ind_SOL, SOL);
    return 0;
}