Pagini recente » Cod sursa (job #860644) | Cod sursa (job #883898) | Cod sursa (job #393661) | Cod sursa (job #109759) | Cod sursa (job #344313)
Cod sursa(job #344313)
#include <fstream.h>
#include <iostream.h>
#define nmax 500001
int v[nmax],poz[nmax],min=-30001;
int n,k,i,sfpoz;
void citeste()
{ifstream in("secventa.in");int h;
in>>n>>k;
for(h=1;h<=n;h++) in>>v[h];
in.close();
}
void scrie()
{ofstream out("secventa.out");
out<<sfpoz-k+1<<" "<<sfpoz<<" "<<min<<"\n";
out.close();
}
void rezolva()
{int first=1,last=0;
for (i=1;i<=n;i++)
{while(first<=last && v[i]<=v[poz[last]]) --last;
poz[++last]=i;
if(i-poz[first]==k) first++;
if(i>=k && v[poz[first]]>min)
{min=v[poz[first]];
sfpoz=i;
}
}
}
int main()
{citeste();
rezolva();
scrie();
return 0;
}