Pagini recente » Cod sursa (job #1509912) | Cod sursa (job #418933) | Cod sursa (job #1507637)
//#include<iostream>
#include<deque>
#include<fstream>
#include<string>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int main()
{
int k,n,i,w,x,sem=0,maxi=-30001,t=0,ss;
deque<int> q,v;
f>>n>>k;
char s[5000000];
int a[n+1];
f.getline(s,EOF);
for(i=0;s[i];i++)
{
ss=1;
if(isdigit(s[i]))
{
t++;
if(s[i-1]=='-')
ss=-1;
for(;isdigit(s[i]);i++)
a[t]=a[t]*10+s[i]-'0';
a[t]+=ss;
}
}
for(i=1;i<=t;i++)
{
x=a[i];
sem=0;
if(v.size()!=0)
if(i-v.front()>=k)
{
q.pop_front();
v.pop_front();
}
while(q.size()!=0 && sem==0)
{
sem=1;
if(x<q.back())
{
sem=0;
q.pop_back();
v.pop_back();
}
}
q.push_back(x);
v.push_back(i);
if(i>=k && maxi<q.front())
{
maxi=q.front();
w=i-k+1;
}
}
g<<w<<" "<<w+k-1<<" "<<maxi;
g.close();
f.close();
return 0;
}