Pagini recente » Cod sursa (job #2392435) | Cod sursa (job #474131)
Cod sursa(job #474131)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<limits.h>
#include<queue>
#include<map>
#include<iostream>
using namespace std;
#define MAXN 500002
int a[MAXN];
int K;
int N;
int secv[MAXN];
int readf() {
FILE* f = fopen("secventa.in", "r");
int i = 0;
fscanf(f, "%d %d", &N, &K);
for(i = 0; i < N; i++) {
fscanf(f, "%d", &a[i]);
}
fclose(f);
}
void ssolv() {
map <int, bool> mmap;
int i = 0;
int smin = INT_MAX;
int curmin = INT_MAX;
int ii = 1, jj = K + 1;
for(i = 0; i < K; i++) {
mmap[a[i]] = true;
}
smin = (mmap.begin())->first;
for(i = K; i < N; i++) {
try {
mmap.erase(mmap.find(a[i-K]));
mmap[a[i]]=true;
std::pair<int, bool> p = *mmap.begin();
if(p.first > smin) {
smin = p.first;
jj = i + 1;
ii = jj - K + 1;
}
}
catch(...) {
std::cout << "exception occured\n";
}
}
FILE* f = fopen("secventa.out", "w");
fprintf(f, "%d %d %d\n", ii, jj, mmap.begin()->first);
fclose(f);
}
int main() {
readf();
ssolv();
}