Pagini recente » Cod sursa (job #847695) | Cod sursa (job #1003961) | Cod sursa (job #1525789) | Cod sursa (job #2949553) | Cod sursa (job #636611)
Cod sursa(job #636611)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int maxim[100001], poz[100001];
long int a[100001];
int main()
{
int n, i, j, max = 0, p;
fin >> n;
for ( i = 1; i <= n; i++ )
fin >> a[i];
maxim[n] = 1;
for ( i = n-1; i >= 1; i-- )
{
maxim[i] = 1;
for ( j = i+1; j <= n; j++ )
if ( a[i] < a[j] && maxim[i] <= maxim[j] )
{
maxim[i] = maxim[j] + 1;
poz[i] = j;
}
if ( maxim[i] > max )
{
max = maxim[i];
p = i;
}
}
fout << max << '\n';
i = p;
while ( i != poz[n] )
{
fout << a[i] << ' ';
i = poz[i];
}
fin.close();
fout.close();
return 0;
}