Pagini recente » Borderou de evaluare (job #3327291) | Borderou de evaluare (job #1867778) | Borderou de evaluare (job #798813) | Borderou de evaluare (job #1869491) | Cod sursa (job #770246)
Cod sursa(job #770246)
#include<fstream>
#include<deque>
using namespace std;
deque <int> A;
#define MAXN 500002
int v[ MAXN ], n, k, x, y, res = -MAXN;
void solve()
{
ifstream f("secventa.in");
int i;
f >> n >> k;
for(i = 1; i < k; i++)
{
f >> v[i];
if( !A.empty() )
while(v[i] <= v[ A.front() ] && !A.empty())
A.pop_front();
A.push_front(i);
if(i - k == A.back())
A.pop_back();
}
for( ; i <= n; i++)
{
f >> v[i];
if( !A.empty() )
while(v[i] <= v[ A.front() ] && !A.empty())
A.pop_front();
A.push_front(i);
if(i - k == A.back())
A.pop_back();
if(i >= k)
if(v[ A.back() ] > res)
res = v[ A.back() ], y = i;
}
f.close();
x = y - k + 1;
}
void write()
{
ofstream g("secventa.out");
g << x << " " << y << " " << res << '\n';
g.close();
}
int main()
{
solve();
write();
return 0;
}