invalid URL
Cod sursa(job #1817479)
| Utilizator | Data | 27 noiembrie 2016 21:30:53 | |
|---|---|---|---|
| Problema | Secventa | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <iostream>
#include <deque>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int secventa(int N, int K, int& pos, vector<int> array) {
int base;
deque<int> dq;
for(int i = 0; i < N; i++) {
if(!dq.empty() && dq.front() == (i - K)) {
dq.pop_front();
}
while(!dq.empty() && array[dq.back()] > array[i]) {
dq.pop_back();
}
dq.push_back(i);
if(i == K || (i >= K && base < array[dq.front()])) {
base = array[dq.front()];
pos = i;
}
}
return base;
}
int main() {
ifstream in("secventa.in");
int N, K, pos;
in >> N >> K;
ofstream out("secventa.out");
vector<int> array;
int i;
while(in >> i) {
array.push_back(i);
}
int sec = secventa(N, K, pos, array);
out << pos - K + 1 << " " << pos << " " << sec;
return 0;
}
