Pagini recente » Cod sursa (job #3170250) | Cod sursa (job #1888548) | Cod sursa (job #1435050) | Cod sursa (job #1186041) | Cod sursa (job #2191609)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> MinS, MinP;
int N, i, K, x, vf, stmin, drmin, minmax, st, dr;
int main()
{
fin >> N >> K;
for (i = 0; i < K; i++) {
fin >> x;
while (MinS.size() && x < MinS.back()) {
MinS.pop_back();
MinP.pop_back();
}
MinS.push_back(x);
MinP.push_back(i + 1);
}
minmax = MinS.front();
stmin = st = 1;
drmin = dr = K;
vf = 4;
while (fin >> x) {
if ((vf - MinP.front()) == K) {
MinS.pop_front();
MinP.pop_front();
}
while (MinS.size() && (x < MinS.back())) {
MinS.pop_back();
MinP.pop_back();
}
MinS.push_back(x);
MinP.push_back(vf);
st++; dr++;
if (MinS.size() && (MinS.front() > minmax)) {
stmin = st;
drmin = dr;
minmax = MinS.front();
}
vf++;
}
fout << stmin << " " << drmin << " " << minmax;
return 0;
}