Pagini recente » Cod sursa (job #3363186) | Cod sursa (job #3363144) | Cod sursa (job #3363206) | Cod sursa (job #3363193) | Cod sursa (job #3363200)
#include <fstream>
#include <deque>
#include <queue>
using namespace std;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
deque<int> dq;
short arr[500001];
int main()
{
int n, k, minim=-100000, val1, val2;
cin>>n>>k;
for(int i=1; i<=n+1; i++) //cu unul in plus pentru a putea verifica ultima secventa
{
if(i<=n) cin>>arr[i];
while(!dq.empty() && arr[dq.back()]>arr[i]) dq.pop_back();
if(!dq.empty() && dq.front()<=i-k) dq.pop_front();
if(i-k>=0 && !dq.empty() && minim<arr[dq.front()])
{
minim=arr[dq.front()];
val1=i-k+1;
val2=i;
}
dq.push_back(i);
}
cout<<val1<<" "<<val2<<" "<<minim;
}