Cod sursa(job #1805955)

Utilizator blackmanta45Andrei blackmanta45 Data 14 noiembrie 2016 18:26:07
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
short v[500010],minim=-31000;
int n,k,i,D[500010],pozj,p,u,nr,j,semn;
char S[10];
int main () {
    fin>>n>>k;
    for(i=1;i<=n;i++){
        fin>>S;
        nr=strlen(S);
        semn=0;
        j=0;
        if(S[0]=='-'){
            semn=1;
            j++;
        }
        for(;j<nr;j++)
            v[i]=v[i]*10+(S[j]-'0');
        if(semn==1)
            v[i]*=-1;

    }
    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 && v[D[p]]>minim){
            minim=v[D[p]];
            pozj=i;
        }

    }
    fout<<pozj-k+1<<" "<<pozj<<" "<<minim;
}