Cod sursa(job #2401364)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 9 aprilie 2019 17:24:33
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <deque>
#include <cstring>

#define val first
#define poz second


using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque < pair <int, int> > deq;
int ist,ifi,k1,maxi,n,i,x,nr,semn,k, v[500001];
char c[2000009];

int main()
{
	f>>n>>k1; f.get();
	semn=1;
	f.getline (c,2000000);
	for(i=0; c[i]!=0; i++){
		if(c[i]=='-') {
			semn=-1;
			continue;
		}
		if(c[i]==' ') v[++k]=nr*semn, semn=1, nr=0;
		else nr=nr* 10+(c[i]-'0');
	} v[++k]=nr;
	
	k=k1;
	for(i=1; i<=n; i++){
		x=v[i];
		while ( deq.empty()==false && x<deq.back().val ) deq.pop_back();
		deq.push_back(make_pair(x,i));
		if(deq.front().poz==i-k) deq.pop_front();
		if(deq.front().val>maxi && i>=k ){
			maxi=deq.front().val;
			ist=i-k+1;
			ifi=i;
		}
	}
	g<<ist<< " "<<ifi<<" "<<maxi;
	return 0;
}