Cod sursa(job #1089375)

Utilizator lilian_ciobanuLilian Ciobanu lilian_ciobanu Data 21 ianuarie 2014 17:39:45
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 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=0,pos=0,x,y;

    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){
        for(j=i; j>=1; --j){
            if(a[i]>a[j]){
                if(b[j] < b[i]+1){
                    b[j]=b[i]+1;
                    c[j]=i;
                }
            }
        }

        if(b[i]>m){
            m=b[i];
            pos=i;
        }
    }




    x=pos;


    if(b[pos]+1==val && x!=0){


    while(c[pos]!=0){
        pos=c[pos];
    }
/*
    for(i=1; i<=n; ++i){
        g<<c[i]<<" ";
    }
*/
        g<<pos-x+1;

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