Pagini recente » Cod sursa (job #2135686) | Borderou de evaluare (job #3212026) | Cod sursa (job #2391865) | Cod sursa (job #392092) | Cod sursa (job #770475)
Cod sursa(job #770475)
#include<fstream>
#include<deque>
using namespace std;
deque < pair <int, int> > A;
int n, k, x, y, res = -30001;
int main()
{
ifstream f("secventa.in");
int i, val;
f >> n >> k;
for(i = 1; i < k; i++)
{
f >> val;
while(!A.empty() && val <= A.back().second)
A.pop_back();
A.push_back(make_pair(i, val));
if(i - k == A.front().first)
A.pop_front();
}
for( ; i <= n; i++)
{
f >> val;
while(!A.empty() && val <= A.back().second)
A.pop_back();
A.push_back(make_pair(i, val));
if(i - k == A.front().first)
A.pop_front();
if(A.front().second > res)
res = A.front().second, y = i;
}
f.close();
x = y - k + 1;
ofstream g("secventa.out");
g << x << " " << y << " " << res << '\n';
g.close();
return 0;
}