Pagini recente » Cod sursa (job #2026182) | Cod sursa (job #285862) | Cod sursa (job #210441) | Cod sursa (job #3237056) | Cod sursa (job #2330562)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int dq[500005],v[500005];
char s[3500005];
int main()
{
int n,k,i,maxi=INT_MIN,pi=0;
fin>>n>>k;
fin.get();
fin.getline(s,3500001);
int l=strlen(s),p=1;
for(i=0;i<l;i++)
{
int semn=1;
if(s[i]=='-')
semn=0,i++;
while('0'<=s[i]&&s[i]<='9')
{
v[p]=v[p]*10+s[i]-48;
i++;
}
if(semn==0)
v[p]=v[p]*(-1);
p++;
}
int st=1,dr=0;
for(i=1;i<=n;i++)
{
while(st<=dr&&v[dq[dr]]>=v[i])
dr--;
dq[++dr]=i;
if(dq[st]==i-k)
st++;
if(i>=k)
{
if(v[dq[st]]>maxi)
maxi=v[dq[st]],pi=i-k+1;
}
}
fout<<pi<<" "<<pi+k-1<<" "<<maxi;
return 0;
}