Pagini recente » Borderou de evaluare (job #1036372) | Cod sursa (job #2455540) | Cod sursa (job #2077982) | Cod sursa (job #1896554) | Cod sursa (job #1544398)
#include <fstream>
using namespace std;
int n,k,i,mini,j,b,m,v[500005],w[500005];
int main()
{
ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
for(i=1; i<=k; i++)
{
f>>v[i];
while(v[w[m]]>=v[i]&&m)
m--;
m++;
w[m]=i;
}
mini=w[1];
j=k;
b=1;
for(i=k+1; i<=n; i++)
{
f>>v[i];
if(w[b]+k==i) b++;
while(v[w[m]]>=v[i]&&m>=b)
m--;
m++;
w[m]=i;
if(v[w[b]]>v[mini])
{
mini=w[b];
j=i;
}
}
g<<j-k+1<<" "<<j<<" "<<v[mini]<<'\n';
f.close(); g.close();
}