Pagini recente » Cod sursa (job #2890399) | Cod sursa (job #1374410) | Monitorul de evaluare | Cod sursa (job #1600692) | Cod sursa (job #2627246)
#include <fstream>
#include <deque>
#include <cstring>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,i,j,m,k,mx=-200000000,in,sf,v[500005],cnt,semn;
char s[5000005];
deque <int> d;
int main()
{
f>>n>>k;
f.get();
f.getline(s,5000005);
m=strlen(s);
for(i=0;i<m;i++){
if(s[i]=='-')
semn=-1;
else
semn=1;
while(isdigit(s[i])&&i<=m)
v[cnt]=v[cnt]*10+s[i]-'0', i++;
v[cnt]=v[cnt]*semn;
cnt++;
}
//for(i=1;i<=cnt;i++)
// g<<v[i]<<" ";
for(i=1;i<=cnt;i++){
while(!d.empty()&&v[i]<=v[d.back()])
d.pop_back();
d.push_back(i);
if(i-k>=d.front())
d.pop_front();
if(mx<v[d.front()]&&i>=k){
mx=v[d.front()];
sf=i;
in=i-k+1;
}
}
g<<in<<" "<<sf<<" "<<mx;
return 0;
}