Pagini recente » Cod sursa (job #678713) | Cod sursa (job #1049214) | Cod sursa (job #2368364) | Cod sursa (job #3218147) | Cod sursa (job #2519174)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int dp[100002], a[100002], poz[100002], n;
void Afisare(int x)
{
if(poz[x] != 0) Afisare(poz[x]);
fout << a[x] << " ";
}
int main()
{
int i, j, cnt, maxim = 0;
fin >> n;
for(i = 1; i <= n; i++)
fin >> a[i];
for(i = 1; i <= n; i++)
{
dp[i] = 1;
for(j = 1; j < i; j++)
if(a[i] > a[j])
{
if(dp[j] + 1 > dp[i])
{
dp[i] = dp[j] + 1;
poz[i] = j;
}
}
}
for(i = 1; i <= n; i++)
{
if(maxim < dp[i])
{
maxim = dp[i];
cnt = i;
}
}
fout << maxim << "\n";
Afisare(cnt);
return 0;
}