Cod sursa(job #2204958)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 17 mai 2018 12:59:42
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,p,u,i,v[500010],d[500010],pozmax,maxim;
int main() {
    fin>>n>>k; maxim=-2000000;
    for (i=1;i<=n;i++)
        fin>>v[i];
    p=1; u=1; d[1]=1;
    for (i=2;i<=n;i++) {
        while (v[i]<v[d[u]]&&p<=u)
            u--;
        d[++u]=i;
        if (i-d[p]==k)
            p++;
        if (i>=k) {
            if (maxim<v[d[p]]) {
                maxim=v[d[p]];
                pozmax=i;
            }
        }
    }
    fout<<pozmax-k+1<<" "<<pozmax<<" "<<maxim;
    return 0;
}