Cod sursa(job #837069)

Utilizator otto1Palaga Vicentiu-Octavian otto1 Data 17 decembrie 2012 11:13:24
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream>
#include<algorithm>
using namespace std;
int i,j,k,n,v[500010],d[500010],p,u,maxi,ii,jj,oki,x;
char sir[500000000];
int main()
{
    ifstream f("secventa.in");
    ofstream g("secventa.out");
    f>>n>>k;
    f>>sir[0];
    if(sir[0]>='0'&&sir[0]<='9')
        x=x*10+sir[i]-48;
    if(sir[0]=='-')
        oki=1;
    f.get(sir,500000000);
    while(sir[i]!=0)
    {
        if(sir[i]=='-')
            oki=1;
        if(sir[i]>='0'&&sir[i]<='9')
        {
            x=x*10+sir[i]-48;
        }
        if(sir[i]==' '||sir[i+1]==0)
        {
            j++;
            if(oki==1)
                v[j]=0-x;
            else
                v[j]=x;
            oki=0;
            x=0;
        }
        i++;
         
    }
    u=p=1;
    d[1]=1;
    maxi=-3000001;
    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(v[d[p]]>maxi)
            {
                maxi=v[d[p]];
                ii=i-k+1;
                jj=i;
            }
              
        }
    }
    g<<ii<<" "<<jj<<" "<<maxi;
}