Cod sursa(job #1441233)

Utilizator SwagginInMyJaysaaaaaaaaaaaas SwagginInMyJays Data 23 mai 2015 22:51:31
Problema Secventa Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <deque>

using namespace std;

const int dmax = 500003;

deque < int > D;

char s[dmax];

int a[dmax];

int main(){
    ifstream cin ("secventa.in");
    ofstream cout ("secventa.out");
    int N, K, start, end, worst = -dmax, numbers = 1 ;
    cin >> N >> K;
    cin.get();
    cin.get(s, dmax * 6);
    for (int i = 0 ; s[i]; i++ ) {
            int sign = 1, val = 0;
            if (s[i] == '-') i++, sign = -1;
            while (isdigit(s[i]) )
                  val = 10 * val + (s[i] - '0'), i++;
                  a[numbers++] = val * sign;
    }
     for (int i = 1; i <= N; i++){
        while ( !D.empty() && a[i] <= a[D.back()]) D.pop_back();
            D.push_back(i);
            if (D.front() == i - K   ) D.pop_front();
            if (i >= K){
                    if (a[D.front()] > worst) worst = a[D.front()], start = i - K + 1 , end = i;
            }
    }
    cout << start << " " << end << " " << worst;
    return 0;
}