Pagini recente » Cod sursa (job #768624) | Cod sursa (job #1892717) | Cod sursa (job #687985) | Cod sursa (job #1580377) | Cod sursa (job #845827)
Cod sursa(job #845827)
#include<cstdio>
#include<algorithm>
#include<deque>
#include<fstream>
using namespace std;
int n,k,i,a[500010],bmin,start,end;
deque<int> dq;
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
fin>>n>>k;
/*freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);*/
bmin=-(1<<30);
for(i=1;i<=n;i++)
{
fin>>a[i];
/*scanf("%d",&a[i]);*/
if(dq.empty()) {dq.push_back(i); continue;}
for(;!dq.empty() && i-dq.front()>=k;) dq.pop_front();
for(;!dq.empty() && a[dq.back()]>a[i];) dq.pop_back();
dq.push_back(i);
if(i>=k)
{
if(a[dq.front()]>bmin)
{
bmin=a[dq.front()];
start=i-k+1;
end=i;
}
}
//for(int j=0;j<dq.size();j++) printf("%d |%d|; ",a[dq[j]],dq[j]); printf("\n");
}
fout<<start<<' '<<end<<' '<<bmin;
/*printf("%d %d %d\n",start,end,bmin);*/
fin.close();
fout.close();
return 0;
}