Pagini recente » Cod sursa (job #3290575) | Cod sursa (job #909902) | Cod sursa (job #579474) | Cod sursa (job #515996) | Cod sursa (job #1095400)
#include <iostream>
#include <fstream>
using namespace std;
int a[100000], l[100000], n;
void Citire()
{
ifstream fin("scmax.in");
fin>>n;
for(int i = 1; i <= n ; i++)
fin>>a[i];
fin.close();
}
void Rezolvare()
{
l[n] = 1;
for(int i = n-1; i > 0 ; i--)
{
l[i]=1;
for(int j = i + 1; j<= n; j++)
if((a[i] < a[j]) && (l[i] < l[j]+1))
l[i] = 1 + l[j];
}
}
int main()
{
Citire();
Rezolvare();
int maxim = l[1];
int i = 0;
for(int j = 1; j<= n; j++)
if(maxim < l[j+1])
{
maxim = l[j+1];
i = j+1;
}
ofstream fout("scmax.out");
fout<<maxim<<"\n"<<a[i]<<" ";
for(int j = i+1; j<=n ;j++)
if(l[j] == maxim - 1)
{
fout<<a[j]<<" ";
maxim --;
}
fout.close();
return 0;
}