Pagini recente » Cod sursa (job #1515563) | Cod sursa (job #1685118) | Cod sursa (job #131735) | Cod sursa (job #240262) | Cod sursa (job #2626844)
#include <fstream>
#include <deque>
#include <string.h>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<int> dq;
int n,i,k,maxim=-2000000005,st,dr,v[500005],j,semn=1,t=1;
char s[4000005];
int main()
{
fin>>n>>k;
fin.get();
fin.getline(s,4000000);
j=strlen(s);
for(i=0; i<j; i++)
{
if(s[i]=='-')
semn=-1;
else if(isdigit(s[i]))
v[t]=v[t]*10+s[i]-'0';
else
{
v[t]*=semn;
t++;
semn=1;
}
}
for(i=1; i<=n; i++)
{
while(!dq.empty() && v[dq.back()]>=v[i])
dq.pop_back();
dq.push_back(i);
if(dq.front()==i-k)
dq.pop_front();
if(i>=k && v[dq.front()]>maxim)
{
maxim=v[dq.front()];
st=i-k+1;
dr=i;
}
}
fout<<st<<" "<<dr<<" "<<maxim;
return 0;
}