Cod sursa(job #1733336)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 24 iulie 2016 14:13:15
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <algorithm>
using namespace std;

#define NMAX 5005

int v[ NMAX ];
int copie[ NMAX ];
int sub[ NMAX ];

int main()
{

    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);

    int n, m, i, j, s, t, d, k, ma;

    scanf("%d",&n);
    for( i = 1; i <= n; ++i ){
        scanf("%d",&v[ i ]);
        copie[ i ] = v[ i ];
    }

    sort( v + 1, v + 1 + n );

    m = 0 ;
    sub[ 0 ] = -1;
    for( i = 1; i <= n; ++i ){
        if( v[ i ] != sub[ m ] ) sub[ ++m ] = v[ i ];
        v[ i ] = copie[ i ];
    }


    ma = -1;
    for( i = 1; i <= n; ++i ){
        if( v[ i ] != sub[ 1 ] ) continue;
        t = 1;
        for( j = i; j <= n && t <= m; ++j ){
            if( v[ j ] == sub[ t ] ) t++;
            if( t > m && j - i + 1 > ma ){
                    ma = j - i + 1;
            }
        }
    }

    printf("%d",ma);


    return 0;

}