Pagini recente » Cod sursa (job #271887) | Cod sursa (job #174738) | Cod sursa (job #2222950) | Cod sursa (job #734175) | Cod sursa (job #2046304)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,a[500002];
char aux[3500002];
deque<int>d;
void Citire()
{
int i,lg,semn,nr;
fin>>n>>k;
fin.get();
fin.getline(aux,3500002);
semn=lg=1;
for(i=0;aux[i]!=0;)
{
if('0'<=aux[i] && aux[i]<='9')
{
nr=0;
while('0'<=aux[i] && aux[i]<='9')
{
nr=nr*10+aux[i]-'0';
i++;
}
nr*=semn;
semn=1;
a[lg]=nr;
lg++;
}
else if(aux[i]=='-')
{
i++;
semn=-1;
}
else i++;
}
}
void Rezolva()
{
int i,maxim,poz;
maxim=-30002;poz=0;
for(i=1;i<=n;i++)
{
while(!d.empty() && a[d.back()]>=a[i])
d.pop_back();
d.push_back(i);
if(i-k==d.front())d.pop_front();
if(i>=k)
{
if(maxim<a[d.front()])
{
maxim=a[d.front()];
poz=i;
}
}
}
fout<<poz-k+1<<" "<<poz<<" "<<maxim<<"\n";
}
int main()
{
Citire();
Rezolva();
return 0;
}