Pagini recente » Cod sursa (job #2585483) | Cod sursa (job #1456765) | Cod sursa (job #349073) | Cod sursa (job #2871351) | Cod sursa (job #2627249)
#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=1,semn=1;
char s[4000005];
deque <int> d;
int main()
{
f>>n>>k;
f.get();
f.getline(s,4000005);
m=strlen(s);
for(i=0;i<m;i++){
if(s[i]=='-')
semn=-1;
else
if(s[i]==' ')
semn=1;
else{
while(isdigit(s[i])&&i<=m)
v[cnt]=v[cnt]*10+s[i]-'0', i++;
i--;
v[cnt]=v[cnt]*semn;
cnt++;
}
}
// for(i=1;i<=cnt;i++)
//09 i999999mnmm g<<v[i]<<"\n";
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;
}