Pagini recente » Cod sursa (job #780567) | Cod sursa (job #2556583) | Cod sursa (job #1148685) | Cod sursa (job #2850441) | Cod sursa (job #1043518)
#include<fstream>
using namespace std;
int n, i, k, p, u, pf, uf, maxim, D[500003], v[500003], aux, semn;
char ch[3000003];
FILE*f;
ofstream g("secventa.out");
int main(){
f= fopen("secventa.in","r");
fscanf(f,"%d", &n);
fscanf(f,"%d", &k);
n=0;
semn=1;
fgets(ch, 3000003, f);
for(i=1; ch[i]!=0; i++){
if(ch[i]>='0' && ch[i]<='9')
aux=aux*10+(ch[i]-'0');
else{
if(ch[i]=='-')
semn=-1;
else{
v[++n]=aux*semn;
aux=0;
semn=1;
}
}
}
//for(i=1; i<=n; i++)
// g<<n<<" ";
p=1; u=0;
maxim=-999999;
for(i=1; i<=n; i++){
while(p<=u && v[i]<=v[D[u]])
u--;
D[++u]=i;
if(D[u]-D[p]==k)
p++;
if(i>=k)
if(v[D[p]]>maxim){
maxim=v[D[p]];
pf=D[u]-k+1;
uf=D[u];
}
}
g<<pf<<" "<<uf<<" "<<maxim<<"\n";
return 0;
}