Cod sursa(job #810901)

Utilizator PatrikStepan Patrik Patrik Data 11 noiembrie 2012 11:11:15
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
    #include<cstdio>
    #define MAX 500001
    using namespace std;
    int n , k , v[MAX] , poz , max ;

    void read();
    void solve();
    void write();

    int main()
    {
        read();
        solve();
        write();
        return 0;
    }

    void read()
    {
        freopen("secventa.in" , "r" , stdin );
        scanf("%d%d" , &n , &k );
        for( int i = 1 ; i<= n ; ++i )
            scanf("%d" , &v[i]);
    }

    void solve()
    {
        int baza = v[1] ;
        for( int i = 2 ; i<= k ; ++i )
            if(v[i] < baza)
                baza = v[i];
        max = baza;
        poz = 1;
        for( int i = k+1 ; i <= n ; ++i )
        {
            if(v[i-k] == baza )
            {
                baza = v[i-k+1];
                for(int j = i-k+2 ; j <= i ; ++j )
                    if(v[j] < baza )
                        baza  = v[j];
                if(baza > max )
                {
                    max = baza;
                    poz = i-k+1;
                }
            }
        }
    }

    void write()
    {
          freopen("secventa.out" , "w" , stdout);
          printf("%d %d %d" , poz , poz+k-1 , max );
    }