Pagini recente » Cod sursa (job #2110159) | Cod sursa (job #968306) | Cod sursa (job #534777) | Cod sursa (job #757418) | Cod sursa (job #2205775)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int maxi,i,sf,in,u,p,n,k,v[500001],dq[500001],nr,l;
char S[3500002];
int main()
{ f>>n>>k;p=0;u=-1;maxi=-30001;
f.get();
f.getline(S+1,3500002);
nr=1;
for(i=1;S[i]!='\0';i++){
if(S[i]=='-'){
l=-1;
i++;
}
else
l=1;
while(S[i]!=' '&&S[i]!='\0'){
v[nr]=v[nr]*10+(S[i]-'0');
i++;
}
v[nr]=v[nr]*l;
nr++;
}
for(i=1;i<=n;i++){
while(p<=u&&v[i]<=v[dq[u]])
u--;
dq[++u]=i;
if(i-dq[p]+1>k){
p++;
}
if(i>=k)
if(maxi<v[dq[p]]){
maxi=v[dq[p]];
sf=i;
}
}
g<<sf-k+1<<' '<<sf<<' '<<maxi;
return 0;
}