Pagini recente » Cod sursa (job #1549293) | Cod sursa (job #126211) | Cod sursa (job #981449) | Cod sursa (job #1674123) | Cod sursa (job #1337282)
#include <iostream>
#include <fstream>
#include <cctype>
#include <cstring>
#define NMAX 500000
using namespace std;
int n, k, i, j, st, poz, dr, m, minim=-1<<30, v[NMAX+1], d[NMAX+1];
char s[1000];
void parsare()
{
i=0;
int sign,nr;
m=0;
while(i<strlen(s))
{
sign=1;
nr=0;
if(s[i]=='-')sign=-1;
i++;
while(isdigit(s[i]))
nr=nr*10+s[i]-'0',i++;
v[++m]=nr*sign;
}
}
int main()
{
ifstream cin("secventa.in");
ofstream cout("secventa.out");
cin>>n>>k;
char c[1000];
cin.getline(c,1000);
cin.getline(s,1000);
parsare();
st=dr=1;
d[1]=1;
for(i=2; i<=n; i++)
{
while(st<=dr&&v[d[dr]]>=v[i])
dr--;
dr++;
d[dr]=i;
if(i-d[st]==k)
st++;
if(minim<v[d[st]]&&i>=k)
minim=v[d[st]],poz=d[dr];
}
cout<<poz-k+1<<' '<<poz<<' '<<minim;
return 0;
}