Cod sursa(job #3205586)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 20 februarie 2024 10:12:18
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<bits/stdc++.h>
using namespace std;
ifstream F("secventa.in");
ofstream G("secventa.out");
int n,i,r[500001],p=1,u=1,k,a,m,j=1;
short v[500001],w,s=-30001;
char t[3500001];
int main()
{
	for(F>>n>>k>>t[0],F.getline(t,3500001),m=strlen(t)-1;i<m;++i)
        if(t[i]>='0'&&t[i]<='9') {
            v[j]=v[j]*10+t[i]-48;
            if(t[i+1]==' ')
                v[j]*=w;
        } else if(t[i]=='-')
            w=-1;
        else
            w=1,++j;
	for(i=1;i<=n;++i) {
		for(;p<=u&&r[p]<=i-k&&v[r[p]]<=v[r[p+1]];++p);
       	for(;p<=u&&v[i]<=v[r[u]];--u);
       	r[++u]=i;
       	if(i>=k&&v[r[p]]>s)
            s=v[r[p]],a=i-k+1,j=i;
	}
	G<<a<<" "<<j<<" "<<s;
	return 0;
}