Cod sursa(job #1089410)

Utilizator lilian_ciobanuLilian Ciobanu lilian_ciobanu Data 21 ianuarie 2014 18:12:54
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<algorithm>
#include<map>


using namespace std;

ifstream f("secv.in");
ofstream g("secv.out");

int main(){
    int i,n,j,a[5005]={},b[5005]={},c[5005]={},m=-1,pos=0,x=0,y=0,mm=6000;

    map<int,int> t;

    f>>n;
    for(i=1; i<=n; ++i){
        f>>a[i];
        t[a[i]]++;
    }

    int val=t.size();

    for(i=n; i>=1; --i){
        if (b[i]==0) c[i]=i;
        for(j=i-1; j>=1; --j){
            if(a[i]>a[j]){
                if(b[j] <= b[i]+1){
                    b[j]=b[i]+1;
                    c[j]=c[i];
                }
            }
        }

        if(b[i]>m || (b[i]==m && (c[i]-i) < mm )){
            m=b[i];
            mm=c[i]-i;
        }
    }




    if(m+1==val){

    /*
    for(i=1; i<=n; ++i){
        g<<b[i]<<" ";
    }
*/
            g<<mm+1;

    }
    else
        g<<"-1";
return 0;
}