Cod sursa(job #799534)

Utilizator octrarOctav M. octrar Data 19 octombrie 2012 11:46:48
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
# include <fstream>
# define nmax 500005
# define mmax 30005

using namespace std;

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

int n, k;
int deque[nmax];
int a[nmax];
int p, q, poz;
int pmax, pmin;

int main() {
    int i, d;
    fin >> n >> k;
    for(i = 1; i <= n; ++ i) fin >> a[i];
    p = 1; q = 0;
    for(i = 1; i <= n; ++ i)
    {
        while(p <= q && a[i] < a[deque[q]]) -- q;
        deque[++q] = i;
        if(a[deque[q]] > pmax && deque[q]+k-1 <= n) {
            pmax = a[deque[q]];
            poz = deque[q];
        }
        if(deque[p] == i-k) ++p;
    }
    pmin = mmax;
    fout << poz << " " << poz+k-1 << " " << pmax << "\n";
    return 0;
}