Pagini recente » Cod sursa (job #2858660) | Cod sursa (job #143430) | Cod sursa (job #2219768) | Cod sursa (job #1919983) | Cod sursa (job #1640275)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int i,a[500005],n,k,mi,poz;
char x[3000005];
deque <int> d;
void parseaza()
{
int i=0;int j=0;
int t=0;
int semn;
while(x[i]!=0)
{
t=0;
if(x[i]=='-')
{
semn=-1;
i++;
}
else
semn=1;
while(x[i]>='0'&&x[i]<='9')
{
t=t*10+x[i]-'0';
i++;
}
a[++j]=t*semn;
i++;
}
}
int main()
{
fin>>n>>k;
fin.get();
fin.getline(x,3000005);
parseaza();
for(i=1;i<=k;i++)
{
while(!d.empty()&&a[d.back()]>=a[i])
d.pop_back();
d.push_back(i);
}
mi=a[d.front()];
poz=k;
for(i=k+1;i<=n;i++)
{
while(!d.empty()&&a[d.back()]>=a[i])
d.pop_back();
d.push_back(i);
if(i-d.front()+1>k)
d.pop_front();
if(mi<a[d.front()])
{
poz=i;
mi=a[d.front()];
}
}
fout<<poz-k+1<<" "<<poz<<" "<<mi;
return 0;
}