Mai intai trebuie sa te autentifici.
Cod sursa(job #1557189)
Utilizator | Data | 26 decembrie 2015 23:03:34 | |
---|---|---|---|
Problema | Secventa | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
#include <deque>
using namespace std;
const int MAX = 500000;
int N, K, V[MAX];
deque<int> dq;
int main() {
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d%d\n", &N, &K);
int min = -30001;
int end = 0;
for(int i = 1; i <= N ; i++) {
scanf("%d", &V[i]);
while(!(dq.empty()) && V[dq.back()] >= V[i]) {
dq.pop_back();
}
dq.push_back(i);
if(dq.front() <= i-K) {
dq.pop_front();
}
if(i >= K && min < V[dq.front()]) {
min = V[dq.front()];
end = i;
}
}
printf("%d %d %d\n", end - K + 1, end, min);
return 0;
}