Mai intai trebuie sa te autentifici.
Cod sursa(job #565994)
| Utilizator | Data | 28 martie 2011 15:47:45 | |
|---|---|---|---|
| Problema | Secventa | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <cstdio>
#include <deque>
#define Lmax 500005
int n, k,maxim=-99999999,pi,pf;
int a[Lmax];using namespace std;
FILE *fin=freopen("secventa.in","r",stdin);
FILE *fout=freopen("secventa.out","w",stdout);
deque <int> c;
void functie()
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(!c.empty() && c.front()<=i-k)
c.pop_front();
while(!c.empty() && a[c.back()]>=a[i])
c.pop_back();
c.push_back(i);
if(i>=k-1 && maxim<a[c.front()]){
pi=c.back()-k+1;
maxim=a[c.front()];
}
}
}
int main()
{
scanf("%d %d", &n, &k);
functie();
printf("%d %d %d\n", pi+1, pi+k, maxim);
return 0;
}
