Cod sursa(job #834014)

Utilizator avramavram andrei marius avram Data 13 decembrie 2012 17:13:21
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 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[500];
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,500);
	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++;
		
	}
	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;
}