Pagini recente » Cod sursa (job #424393) | Cod sursa (job #134126) | Cod sursa (job #1489834) | Cod sursa (job #2692758) | Cod sursa (job #2191616)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> MinS, MinP;
int N, i, K, x, drmin, minx;
int main()
{
fin >> N >> K;
for (i = 0; i < K; i++) {
fin >> x;
while (!MinS.empty() && x < MinS.back()) {
MinS.pop_back();
MinP.pop_back();
}
MinS.push_back(x);
MinP.push_back(i + 1);
}
minx = MinS.front();
drmin = K;
for(i=K+1; i<=N; i++){
fin >> x;
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 (MinS.front() > minx) {
drmin = i;
minx = MinS.front();
}
}
fout << drmin - K + 1 << " " << drmin << " " << minx;
return 0;
}