Pagini recente » Cod sursa (job #1137915) | Cod sursa (job #2593932) | Cod sursa (job #1663132) | Cod sursa (job #2392624) | Cod sursa (job #1510061)
#include <fstream>
#include <deque>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
const int oo = (1<<30)-1;
deque<int> d;
int main()
{
int n, k;
int v[500001];
in >> n >> k;
for(int i=1 ; i<=n ; ++i)
in >> v[i];
for(int i=1 ; i<k ; ++i)
{
while(!d.empty() && v[i] < v[d.back()])
d.pop_back();
d.push_back(i);
}
int maxVal = -oo;
int maxPos=0;
for(int i=k ; i<=n ; ++i)
{
while(!d.empty() && v[i] < v[d.back()])
d.pop_back();
d.push_back(i);
if(i-d.front() == k)
d.pop_front();
if(v[d.front()] > maxVal)
{
maxPos = i;
maxVal = v[d.front()];
}
}
out << maxPos-k+1 << ' ' << maxPos << ' ' << maxVal << '\n';
in.close();
out.close();
return 0;
}