Pagini recente » Cod sursa (job #189540) | Cod sursa (job #2070915) | Cod sursa (job #672368) | Borderou de evaluare (job #2688894) | Cod sursa (job #2626840)
#include <fstream>
#include <deque>
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;
char s[4000005];
int main()
{
fin>>n>>k;
fin.get();
fin.getline(s,4000000);
i=1;
j=0;
if(s[0]=='-')
semn=-1,j++;
else
semn=1;
while(i<=n)
{
while(s[j]>='0' && s[j]<='9')
{
v[i]=v[i]*10+s[j]-'0';
j++;
}
v[i]*=semn;
i++;
j++;
if(s[j]=='-')
semn=-1;
else
semn=1;
}
for(i=1; i<=n; i++)
{
fin>>v[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;
}