Pagini recente » Clasament gim_3 | Cod sursa (job #3246129) | Cod sursa (job #1528151) | preONI 2008 - Clasament Runda 3, Clasele 11-12 | Cod sursa (job #1738254)
#include<cstdio>
#include<deque>
#include<cstring>
#define DIM 10000005
using namespace std;
int i,n,k,maxim,x,imax,dv;
int v[500005],nr,semn;
char buff[10000005];
deque<int> q;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
// fread(buff,1,DIM,stdin);
scanf("%d%d",&n,&k);
scanf("\n");
fread(buff,1,DIM,stdin);
int x=strlen(buff);
nr=0;
semn=1;
dv=0;
for(int i=0;i<x;i++)
{
if (buff[i]=='-') semn=-1;
if (buff[i]<='9' && buff[i]>='0')
{
nr=nr*10+buff[i]-'0';
}
else
if ((buff[i]>'9' || buff[i]<'0') && buff[i-1]<='9' && buff[i-1]>='0')
{
if (semn==-1) nr=-nr;
v[++dv]=nr;
semn=1;
nr=0;
}
}
if (nr)
{
if (semn==-1) nr=-nr;
v[++dv]=nr;
}
maxim=-30005;
/*for(i=1;i<=n;i++)
scanf("%d",&v[i]);*/
for(int i=1;i<=n;i++)
{
while(!q.empty() && v[i]<v[q.back()])
q.pop_back();
q.push_back(i);
if(i>=k && maxim<v[q.front()])
maxim=v[q.front()],imax=i-k+1;
if(q.front()==i+1-k)
q.pop_front();
}
printf("%d %d %d\n",imax,imax+k-1,maxim);
return 0;
}