Pagini recente » Cod sursa (job #966443) | Cod sursa (job #2216740) | Cod sursa (job #1228344) | Cod sursa (job #386157) | Cod sursa (job #302214)
Cod sursa(job #302214)
#include <cstdio>
#include <deque>
#define dim 500010
using namespace std;
int n, k, v[dim];
char s[dim*8], *p;
deque<int> d;
int main()
{
int i, min=0, x=0, y=0;
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d\n", &n, &k, s);
gets(s);
p=s;
for (i=1; i<=n; i++)
{
min=1;
if (*p=='-') min=-1, p++;
v[i]=0;
while (*p>='0' && *p<='9')
v[i]=v[i]*10+*p-'0', p++;
v[i]*=min;
p++;
}
v[0]=-1<<30;
for (i=1; i<=n; i++)
{
while (d.size() && v[i]<=v[d.back()]) d.pop_back();
d.push_back(i);
if (d.front()==i-k) d.pop_front();
if (i>=k)
{
if (v[d.front()]>v[min])
{
min=d.front();
x=i-k+1;
y=i;
}
}
}
printf("%d %d %d\n", x, y, v[min]);
return 0;
}