Cod sursa(job #1477836)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 27 august 2015 10:22:46
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
# include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int v[500001],u,p,d[500001],i,n,k,maxim,x,y,t,semn;
char s[3000010];
int main () {
    maxim=-30001;
    fin>>n>>k;

    fin.get();
    fin.get(s, 3000000);
    t = 0;
    for (i=0; s[i]!=0;i++) {
        if (s[i] == '-')
            semn = -1;
        if (s[i] == '+')
            semn = 1;
        if (s[i] >= '0' && s[i] <= '9')
            t = t * 10 + (s[i]-'0');
        if (s[i] == ' ') {
            x++;
            v[x] = t*semn;
            t = 0;
            semn = 1;
        }
    }
    v[++x] = semn*t;

    //for(i=1;i<=n;i++)
      //  fout<<v[i]<<" ";


    u=0;
    p=1;
    for(i=1;i<=n;i++){
        fin>>v[i];
        while(u>=p&&v[i]<=v[d[u]])
            u--;
        u++;
        d[u]=i;
        if(i-d[p]==k)
            p++;
        if(i>=k&&v[d[p]]>maxim){
            maxim=v[d[p]];
            x=i-k+1;
            y=i;
        }
    }
    fout<<x<<" "<<y<<" "<<maxim;
    return 0;
}