Pagini recente » Cod sursa (job #1505961) | Cod sursa (job #2940460) | Cod sursa (job #2101385) | Cod sursa (job #2758995) | Cod sursa (job #2917672)
#include <bits/stdc++.h>
using namespace std;
struct pereche{
int val;
int pos;
pereche(int val,int pos){
this->val=val;
this->pos=pos;
}
};
deque <pereche> Deque;
ifstream f("secventa.in");
ofstream g("secventa.out");
int main()
{
int n,k,v[500001],mx=-3000000;
f>>n>>k;
for(int i=0;i<n;i++)
{
f>>v[i];
}
for(int i=0;i<n;i++){
while(!Deque.empty()&&Deque.back().val>v[i])
Deque.pop_back();
Deque.push_back(*new pereche(v[i],i));
while(i-k>=Deque.front().pos){
Deque.pop_front();
}
if(i>=k-1)
mx=max(mx,Deque.front().val);
}
int len=0;
for(int i=0;i<n;i++){
if(v[i]>=mx)
len++;
else
len=0;
if(len==k)
g<<i-k+2<<" "<<i+1<<" "<<mx;
}
}