Pagini recente » Cod sursa (job #1922871) | Cod sursa (job #2978925) | Cod sursa (job #3272960) | Cod sursa (job #3220148) | Cod sursa (job #2798792)
#include <fstream>
using namespace std;
int v[1001], l[1001], t[1001];
int n, maxim, max_global, poz_max;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void search(int d, int& maxim)
{
maxim = 0;
for (int i = d - 1; i >= 1; i--)
{
if (v[i]<v[d] && l[i]>maxim)
{
maxim = l[i];
}
}
maxim++;
}
int main() {
fin >> n;
for (int i = 1; i <= n; i++)
{
fin >> v[i];
}
for (int i = 1; i <= n; i++)
{
search(i, maxim);
l[i] = maxim;
if (maxim > max_global)
{
max_global = maxim;
poz_max = i;
}
}
fout << max_global << endl;
int limit = max_global;
for (int i = poz_max; i >= 1; i--)
{
if (l[i] == max_global)
{
t[max_global] = v[i];
max_global--;
}
if (max_global == 0)
{
break;
}
}
for (int i = 1; i <= limit; i++)
{
fout << t[i] << " ";
}
return 0;
}