Cod sursa(job #988263)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 22 august 2013 13:38:26
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
#define LMAX 500100
 
int n,k;
int x[LMAX],q[LMAX];
 
using namespace std;
 
void read()
{
int i;
ifstream fin("secventa.in");
fin>>n>>k;
for(i=1;i<=n;i++)
    fin>>x[i];
}
 
void solve()
{
ofstream fout("secventa.out");
int p=1,u=0,i,poz,max=poz=-(1<<25);
for(i=1;i<=n;i++)
    {
    while(p<=u && x[i]<=x[q[u]])
        u--;
    q[++u]=i;
    if(q[p]+k==i)
        p++;
    if(i>=k)
        if(x[q[p]]>max)
            max=x[q[p]],poz=i;
    }
fout<<poz-k+1<<" "<<poz<<" "<<max;
}
 
int main()
{
read();
solve();
return 0;
}