Pagini recente » Cod sursa (job #672470) | Clasament oji_simulare_2017_cl10 | Cod sursa (job #2420079) | Cod sursa (job #2168643) | Cod sursa (job #952464)
Cod sursa(job #952464)
#include<fstream>
#define IN "scmax.in"
#define OUT "scmax.out"
#define MAX 100000
using namespace std;
ifstream in(IN);
ofstream out(OUT);
int N, a[MAX], i, j, v, l[MAX];
int main()
{
in>>N;
for(i=0; i<N; i++)
in>>a[i];
l[N-1]=1;
for(i=N-2; i>=0; --i)
{
for(j=i+1; j<N; ++j)
if(a[i]<a[j] && l[i]<l[j])
l[i]=l[j];
l[i]++;
if(v<l[i])
v=l[i];
}
out<<v<<'\n';
i=0;
while(l[i]!=v) ++i;
//i a ajuns pe pozitia maxima
out<<a[i]<<' ';
j=i;
--v;
while(v)
{
while(l[i]!=v) i++;
if(a[j]<a[i])
{
out<<a[i]<<' ';
j=i;
--v;
}
else i++;
}
out<<'\n';
in.close();
out.close();
return 0;
}