Pagini recente » Cod sursa (job #304760) | Statistici Musoiu Horia (horik) | Cod sursa (job #242880) | Cod sursa (job #267531) | Cod sursa (job #2191737)
#include <stdio.h>
#include <cstring>
#include <deque>
#define NMax 500002
using namespace std;
deque <int> MinS, MinP;
int N, i, K, drmin, minx, signstring, x, cont;
char WT[10000001], *p;
void NBuild(){
x = 0;
if (p[0] == '-') {
signstring = -1; p += 1;
}
else signstring = 1;
while (strlen(p)) {
x = x * 10 + (p[0] - '0');
p += 1;
}
x *= signstring;
}
int main()
{
minx=-3000000;
FILE *fin = fopen("secventa.in", "r");
FILE *fout = fopen("secventa.out", "w");
fscanf(fin, "%d%d", &N, &K);
fgetc(fin);
fgets(WT, 10000001, fin);
p = strtok(WT, " ");
for(i=1; i<=N; i++){
NBuild();
if(cont>=K) if ((i - MinP.front()) >= K) {
MinS.pop_front();
MinP.pop_front();
}
while (!MinS.empty() && (x < MinS.back())) {
MinS.pop_back();
MinP.pop_back();
}
MinS.push_back(x);
MinP.push_back(i);
if(cont>=(K-1)) if (MinS.front() > minx) {
drmin = i;
minx = MinS.front();
}
p = strtok(NULL, " ");
cont++;
}
fprintf(fout, "%d%c%d%c%d", drmin - K + 1, ' ', drmin, ' ', minx);
return 0;
}