Cod sursa(job #895564)

Utilizator robertc1Robert Ciobotaru robertc1 Data 27 februarie 2013 11:49:29
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#define  IN "scmax.in"
#define OUT "scmax.out"
#define NMAX 100010
using namespace std;

ifstream fin(IN);
ofstream fout(OUT);

int A[NMAX],lg[NMAX],urm[NMAX],n;

void citire();
void rezolva();
void afisare();
int main()
{
    citire();
    rezolva();
    afisare();
    return 0;
}


void citire()
{
    int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>A[i];
}

void rezolva()
{
    int i,j;
    lg[n]=1;
    urm[n]=-1;
for(i=n-1;i>=1;i--)
{
    for(j=i+1;j<=n;j++)
    if (A[i]==A[j] && lg[j]>=lg[i]) {lg[i]=lg[j];urm[i]=j;}
    //if (A[i]=A[j] && lg[j]>=lg[i]) {lg[i]=lg[j];urm[i]=j;}
    lg[i]++;
}
}


void afisare()
{
int maxi=0,i,j;
for(i=1;i<=n;i++)
if(maxi<lg[i]) {maxi=lg[i];j=i;}
fout<<maxi<<'\n';


}