Pagini recente » Cod sursa (job #2216858) | Cod sursa (job #3306126) | Cod sursa (job #561051) | Cod sursa (job #2503909) | Cod sursa (job #3315264)
#include <fstream>
#include <deque>
#include <climits>
using namespace std;
const int Nmax=500005;
int v[Nmax];
deque<int> dq;
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k;
fin>>n>>k;
for (int i=1; i<=n; ++i) {
fin>>v[i];
}
int sol=INT_MIN,l,r;
for (int i=1; i<=n; ++i) {
while (!dq.empty() && v[i]<v[dq.back()]) {
dq.pop_back();
}
dq.push_back(i);
if (!dq.empty() && dq.front()<=i-k) {
dq.pop_front();
}
if (i>=k && sol<v[dq.front()]) {
r=i;
l=i-k+1;
sol=v[dq.front()];
}
}
fout<<l<<' '<<r<<' '<<sol;
fin.close();
fout.close();
return 0;
}