Cod sursa(job #834018)

Utilizator avramavram andrei marius avram Data 13 decembrie 2012 17:15:50
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 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;
}