Pagini recente » Cod sursa (job #1022066) | Cod sursa (job #642916) | Cod sursa (job #2758312) | Cod sursa (job #76255) | Cod sursa (job #2120482)
#include <fstream>
#include <deque>
#include <cstring>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n , k , a[500002],poz,max1=-1e8,p;
char s[3500000];
deque <int> dq;
int main()
{
f >> n >> k;
f.get();
f.getline(s,sizeof(s));
for ( int i = 0 ; s[i] != 0 ; i ++ )
{
int semn=1;
if(s[i]=='-')
semn=-1,i++;
int nr=0;
while(s[i]>='0'&&s[i]<='9')
{
nr=nr*10+s[i]-'0';
i++;
}
nr=nr*semn;
a[++p]=nr;
}
for ( int i = 1 ; i <= n ; i ++ )
{
while(!dq.empty()&&a[i]<=a[dq.back()])
dq.pop_back();
dq.push_back(i);
if( i == dq.front() + k)
dq.pop_front();
if(i>=k)
{
if(max1<a[dq.front()])
{
max1=a[dq.front()];
poz=i;
}
}
}
g <<poz-k+1<<" "<<poz<<" "<<max1;
}