Cod sursa(job #899289)

Utilizator silidragosSilion Dragos silidragos Data 28 februarie 2013 13:46:49
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<deque>
using namespace std;

bool comp(int a,int b)
{if(a<b)
return false;
return true;
}

int main()
{
ifstream f("secventa.in",ios::in);
ofstream g("secventa.out",ios::out);
int i,a,min=0,poz=0,sf;
vector<int> v;
deque<int> q;
int N,K;
f>>N>>K;
v.push_back(0);
for(i=0;i<N;i++)
	{f>>a;
	v.push_back(a);}

min=-5000000000;

for(i=1;i<=N;i++)
	{while(!q.empty() && v[q.back()]>=v[i])
		q.pop_back();
	q.push_back(i);

	if(q.front()==i-K)
		q.pop_front();

	if(i>=K)
	if(v[q.front()]>min)
		{min=v[q.front()];
		poz=i-K+1;
		sf=i;}
	}

while(v[poz-1]>=min && poz>1)
	poz--;

g<<poz<<" "<<sf<<" "<<min<<endl;

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