Cod sursa(job #857232)
Utilizator | Dumitrascu Mihai dumitrascumihai | Data | 17 ianuarie 2013 16:57:47 |
---|---|---|---|
Problema | Secventa | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<fstream>
#define M 510000
int v[M],d[M];
using namespace std;
int main()
{
int inf,sup,max,cp,k,n;
max=-M;
int i;
ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
inf=0;
sup=-1;
for(i=1;i<=n;i++)
{
f>>v[i];
if(i-d[inf]>=k) inf++;
while(sup>=inf&&v[d[sup]]>=v[i]) sup--;
d[++sup]=i;
if(i>=k&&v[d[inf]]>max)
{
max=v[d[inf]];
cp=i;
}
}
g<<cp-k+1<<" "<<cp<<" "<<max;
return 0;
}