Cod sursa(job #640917)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 26 noiembrie 2011 19:07:14
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int i,k,n,p,poz,Y,T,m,a[500003],d[500006],z,w,nr,semn;
string s;
int main()
{
    f>>n>>k;
    f.get();
    m=-300005;

    getline(f,s);
    z=s.length();
    s=s+' ';
semn=1;
    for(i=0; i<=z; i++)
    {
        if(s[i-1]=='-')
            semn=-1;

        if (s[i]<='9'&&s[i]>='0') nr=nr*10+s[i]-'0';

        if (s[i]==' ')
        {
            w++;
            a[w]=nr*semn;
            semn=1;
            nr=0;
        }
    }

    T=1;




    for(i=1; i<=n; i++)
    {

        while (a[i]<=a[d[poz]]&&T<=poz) poz--;

        poz++;
        d[poz]=i;

        if (d[T]<=i-k) T++;

        if (a[d[T]]>m&&i>=k)
        {
            m=a[d[T]];
            Y=i;
        }
    }






    g<<Y-k+1<<" "<<Y<<" "<<m;


    f.close();
    g.close();
    return 0;
}