Cod sursa(job #1257017)
| Utilizator | Data | 7 noiembrie 2014 09:13:03 | |
|---|---|---|---|
| Problema | Secventa | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<stdio.h>
#include<deque>
using namespace std;
int maxi,pozi,n,k,i,x,v[500004];
typedef deque<int> deck;
deck q;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
maxi=-30001;
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
while(q.empty()==false&&v[i]<v[q.back()])
{
q.pop_back();
}
q.push_back(i);
if(q.front()==i-k)
q.pop_front();
if(v[q.front()]>maxi)
{
maxi=v[q.front()];
pozi=i-k+1;
}
}
printf("%d %d %d",pozi, pozi+k-1,maxi);
return 0;
}
