Cod sursa(job #1551257)

Utilizator nicula_iulianNicula Iulian nicula_iulian Data 15 decembrie 2015 16:29:20
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <iostream>
#include<fstream>
#include<algorithm>
using namespace std;
struct ex
{
    int val1;
    int val2;
}x[100002],y[100002];
bool cmp(ex a,ex b)
{
 return a.val1<b.val1;
}
ex element[100002],v[100002];
int main()
{int n,i,j,lmax=0,lcurent,k,l,v2[100002];
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for(i=1;i<=n;i++)
{
    f>>element[i].val1;
    element[i].val2=i;
}
sort(element+1,element+n+1,cmp);
//for(i=1;i<=n;i++)
 //   g<<element[i].val1<<" "<<element[i].val2<<"\n";
for(i=1;i<=n;i++)
{
    lcurent=1;
    v[lcurent].val1=element[i].val1;
    v[lcurent].val2=element[i].val2;
    k=i;
    j=k+1;
    while(j<=n)
    {
        if(v[lcurent].val1!=element[j].val1&&v[lcurent].val2<element[j].val2)
        {
            lcurent++;
            v[lcurent].val1=element[j].val1;
            v[lcurent].val2=element[j].val2;
        }
        k++;
        j++;
    }
    if(lcurent>lmax)
    {
        lmax=lcurent;
        for(k=1;k<=lmax;k++)
            v2[k]=v[k].val1;
    }
}
g<<lmax<<"\n";
for(i=1;i<=lmax;i++)
    g<<v2[i]<<" ";
f.close();
g.close();
    return 0;
}