Cod sursa(job #1061208)
| Utilizator | Data | 19 decembrie 2013 14:18:14 | |
|---|---|---|---|
| Problema | Secventa | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.96 kb |
#include <cstdio>
#include <deque>
using namespace std;
deque <int> h;
int a[500001];
int main()
{
int n, k, i, p, r, Min=-30001;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
for (i=1; i<=n; i++) scanf("%d",&a[i]);
for (i=1; i<=n; i++)
{
while(!h.empty() && a[h.back()]>a[i])
{
h.pop_back();
}
h.push_back(i);
if (i-h.front()>=k)
h.pop_front();
if (a[h.front()]>Min && i>=k)
{
Min=a[h.front()];
p=i-k+1; r=i;
}
}
printf("%d %d %d",p,r,Min);
fclose(stdin);
fclose(stdout);
return 0;
}
