Pagini recente » Cod sursa (job #2911820) | Cod sursa (job #838715) | Cod sursa (job #410202) | Cod sursa (job #34889) | Cod sursa (job #2118279)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,st,dr,Max,poz1,poz2,i,a[500001],v[500001];
char s[3000001];
int main()
{
f>>n>>k;
st=1;dr=0;Max=-30001;
f.get();
f.getline(s,3000001);
int K=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9'){
int nr=0;
int j=i;
while(s[j]>='0'&&s[j]<='9'){
nr=nr*10+s[j]-'0';
j++;
}
if(i>0&&s[i-1]=='-')
nr=-nr;
i=j-1;
a[++K]=nr;
}
for(i=1;i<=n;i++){
while(st<=dr&&a[i]<a[v[dr]])
dr--;
dr++;
v[dr]=i;
if(st<=dr&&v[st]==i-k)
st++;
if(i>=k&&Max<a[v[st]]){
Max=a[v[st]];
poz2=i;
}
}
g<<poz2-k+1<<" "<<poz2<<" "<<Max;
return 0;
}