Pagini recente » Cod sursa (job #1491741) | Cod sursa (job #1898067) | Cod sursa (job #450878) | Cod sursa (job #42935) | Cod sursa (job #1673036)
#include <cstdio>
using namespace std;
int n,i,v[500001],k,p,j,u,maxim,x,p1,p2,k2,d[500001];
FILE *fin = fopen ("secventa.in", "r");
FILE *fout = fopen ("secventa.out", "w");
//ifstream fin ("secventa.in");
//ofstream fout ("secventa.out");
int main (){
//fin>>n>>k;
fscanf (fin, "%d%d",&n, &k);
for (i=1;i<=n;i++)
fscanf (fin, "%d", &v[i]);
//fin>>v[i];
p = 1;
u = 1;
d[1] = 1;
maxim = -2000000000;
for (i=2;i<=n;i++){
while (p<=u && v[i] <= v[d[u]])
u--;
d[++u] = i;
if (i-d[p] == k)
p++;
if (i>=k && v[d[p]] > maxim){
maxim = v[d[p]];
p1 = i-k+1;
p2 = i;
}
}
fprintf (fout, "%d %d %d",p1,p2,maxim);
// fout<<p1<<" "<<p2<<" "<<maxim;
return 0;
}