Pagini recente » Cod sursa (job #143740) | Cod sursa (job #755091) | Cod sursa (job #219806) | Simulare 03 | Cod sursa (job #3138051)
#include <stdio.h>
#define MAXN 500000
#define MAXNR 30000
#define MINNR -30000
short v[MAXN];
int vf[MAXNR - MINNR + 1];
int main() {
FILE *fin, *fout;
int n, k, i, j, in, sf, max, min;
fin = fopen("secventa.in", "r");
fscanf(fin, "%d%d", &n, &k);
for(i = 0; i < n; i++) {
fscanf(fin, "%hd", &v[i]);
}
fclose(fin);
max = MINNR - 1;
for(i = 0; i <= n - k; i++) {
if(i > 0) {
vf[v[i - 1] + MAXNR]--;
vf[v[i + k - 1] + MAXNR]++;
} else {
for(j = 0; j < k; j++)
vf[v[j] + MAXNR]++;
}
j = 0;
while(j <= MAXNR - MINNR && vf[j] == 0) {
j++;
}
min = j - MAXNR;
if(min > max) {
max = min;
in = i;
sf = i + k - 1;
}
}
fout = fopen("secventa.out", "w");
fprintf(fout, "%d %d %d\n", in + 1, sf + 1, max);
fclose(fout);
return 0;
}