Pagini recente » Cod sursa (job #2682211) | Cod sursa (job #3247315) | Cod sursa (job #3004693) | Cod sursa (job #3188070) | Cod sursa (job #565983)
Cod sursa(job #565983)
#include <fstream>
#include <deque>
using namespace std;
const int M=500000;
int n, k, a[M], minim, inc, sf;
deque <int> D;
void citire()
{
ifstream fin ("secventa.in");
fin >> n >> k;
for (int i=0; i<n; i++)
fin >> a[i];
}
void coada()
{
for (int i=0; i<n; i++)
{
while (!D.empty() && a[D.back()]>=a[i])
D.pop_back();
D.push_back(i);
if (D.front()<=i-k)
D.pop_front();
if (i>=k-1 && a[D.front()]>minim)
{
sf=D.back();
inc=sf-k+1;
minim=a[D.front()];
}
}
}
int main()
{
ofstream fout ("secventa.out");
citire();
coada();
fout << inc+1 << ' ' << sf+1 << ' ' << minim << '\n';
return 0;
}