Cod sursa(job #806169)

Utilizator mihai_tMihai Teletin mihai_t Data 1 noiembrie 2012 23:04:34
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cstdio>

using namespace std;
ifstream f;
ofstream g;
long n,k;
int a[500001],b[500001];
void cit()
{
    freopen("secventa.in","r",stdin);
    scanf("%d %d\n",&n,&k);
    for (int i=1;i<=n;i++)
    scanf("%d",&a[i]);
}
int min(int p,int q)
{
    int m=a[p];
    for (int i=p+1;i<=q;i++) if (m>a[i]) m=a[i];
    return m;
}
int min2(int a,int b)
{
    if (a<b)return a;
    return b;
}
void din()
{
    int j=1;
    b[k]=min(1,k);
    for (int i=k+1;i<=n;i++)
    {
        if (a[j]==b[i-1]) b[i]=min(j+1,i);
        else b[i]=min2(b[i-1],a[i]);
        j++;
    }
}
void afmax()
{
    int p=k;
    int max=b[k];
    for (int i=k;i<=n;i++)
    {
        if (b[i]>max)
         {
            max=b[i];
            p=i;
         }
    }
    g<<p-k+1<<" "<<p<<" "<<max;
}
int main()
{
    cit();
    g.open("secventa.out");
    din();
    afmax();
    //for (int i=1;i<=n;i++) g<<b[i];
    g.close();
    return 0;
}