Pagini recente » Cod sursa (job #1282267) | Cod sursa (job #729061) | Cod sursa (job #92790) | Cod sursa (job #145533) | Cod sursa (job #2029103)
#include <fstream>
#include <deque>
#include<climits>
using namespace std;
deque <pair <int, int>> coada;
int v[5000001];
ifstream cin ("secventa.in");
ofstream cout ("secventa.out");
int main()
{
int n, k,maxi,c,j,st,dr,q;
cin>>n>>k;
for ( int i = 1; i <= n; ++i )
cin>>v[i];
maxi=INT_MIN;
for ( int i = 1; i <= n; ++i )
{
while ( coada.empty() == 0 && coada.back().first > v[i])
coada.pop_back();
while ( coada.front().second <= i-k && coada.empty() == 0 )
coada.pop_front();
coada.push_back({v[i], i});
if ( i >= k )
if(maxi<coada.front().first)
{
q=coada.front().second;
maxi=coada.front().first;
}
}
j=q-1;
c=1;
while(v[q]<v[j]&&c<k)
{
c++;
j--;
}
st=j+1;
dr=st+k-1;
cout<<st<<" "<<dr<<" "<<maxi;
}