Pagini recente » Cod sursa (job #3263058) | Cod sursa (job #2595218) | Cod sursa (job #707357) | Cod sursa (job #1588333) | Cod sursa (job #2917671)
#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,mLen=0,startPos=0,mStartPos=0;
for(int i=0;i<n;i++){
if(v[i]>=mx){
len++;
if(len>mLen)
mLen=len;
}else{
len=0;
mStartPos=i+1;
}
}
g<<mStartPos+1<<" "<<mStartPos+len<<" "<<mx;
}
// } Driver Code Ends