Pagini recente » Cod sursa (job #2316367) | Cod sursa (job #486346) | Cod sursa (job #715897) | Cod sursa (job #1714257) | Cod sursa (job #2375743)
#include <cstdio>
#include <deque>
#include <fstream>
#define MIN -30000
using namespace std;
deque <int>T;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k;
int a[500005];
int maxi=MIN, poz;
int main()
{
//freopen("secventa.in", "r", stdin);
//freopen("secventa.out", "w", stdout);
f>>n>>k;
for(int i=1; i<=n; i++)
{
f>>a[i];
while(T.front()<i-k+1 && !T.empty()){
T.pop_front();
}
while(!T.empty() && a[T.back()]>a[i])
T.pop_back();
T.push_back(i);
if(i>=k)
{
if(a[T.front()]>maxi)
{
maxi=a[T.front()];
poz=T.front();
}
}
}
int i=poz;
i = poz;
while (a[i] >= maxi && i>=1)
i--;
i++;
g<<i<<' '<<i+k-1<<' '<<maxi;
return 0;
}