Pagini recente » Cod sursa (job #2279356) | Cod sursa (job #883595) | Cod sursa (job #1609447) | Cod sursa (job #1766531) | Cod sursa (job #302230)
Cod sursa(job #302230)
#include <cstdio>
#include <deque>
#define dim 500100
using namespace std;
int n, k, v[dim];
char s[dim*8], *p;
deque<int> d;
int main()
{
int i, min, x=0, y=0;
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d\n", &n, &k);
fgets(s, dim*8, stdin);
for(i=1, p=s; i<=n; i++)
{
while(*p==' ') p++;
if(*p=='-') min=1, p++;
else min=0;
while(*p>='0' && *p<='9') v[i] = v[i]*10+*p-'0', p++;
if(min) v[i]*=-1;
}
min=0;
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;
}