Cod sursa(job #2206891)

Utilizator maria15Maria Dinca maria15 Data 24 mai 2018 10:01:17
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;

int n, i, p, u, k, d[500003], b, x, nr;
short v[500003], maxim = -30005;
char ok, s[3500001], minusu;

ifstream fin("secventa.in");
ofstream fout("secventa.out");

int main(){
    fin>>n>>k;
    fin.get();
    fin.get(s, 3500000);
    for(i=0;s[i]!=0;i++){
        x = 0, ok = 0, minusu = 1;
        if(s[i] == '-')
            minusu = -1;
        while(s[i] >= '0' && s[i] <= '9'){
            x = x*10 + s[i] - '0';
            i++;
            ok = 1;
        }
        if(ok == 1)
            v[++nr] = minusu*x;
    }
    //fin>>v[1];
    p = u = 1;
    d[1] = 1;
    for(i=2;i<=n;i++){
        //fin>>v[i];
        while(p <= u && v[i] < v[d[u]])
            u--;
        d[++u] = i;
        if(i - d[p] == k)
            p++;
        if(i >= k && v[d[p]] > maxim){
            maxim = v[d[p]];
            b = i;
        }
    }
    fout<<b-k+1<<" "<<b<<" "<<maxim;
    return 0;
}