Pagini recente » Cod sursa (job #1105972) | Cod sursa (job #1857024) | Cod sursa (job #3190836) | Cod sursa (job #2385564) | Cod sursa (job #2861549)
#include <iostream>
#include <fstream>
using namespace std;
struct elem {
int info;
elem* kovi = NULL;
};
int main()
{
ifstream in("scmax.in");
int n;
in >> n;
elem v[n];
for(int i = 0; i < n; i++)
{
in >> v[i].info;
}
int maxHossz[n]={};
for(int i = n-1; i >= 0; i--)
{
int maxi = 1, maxihely = -1;
for(int j = i+1; j < n; j++)
{
if(v[i].info < v[j].info && maxi < maxHossz[j])
{
maxi = maxHossz[j];
maxihely = j;
}
}
maxHossz[i] = maxi + 1;
if(maxi > 1)
{
v[i].kovi = &v[maxihely];
}
}
int maxi = 0;
elem* maxihely = NULL;
for(int i = 0; i<n; i++)
{
if(maxHossz[i] > maxi)
{
maxi = maxHossz[i];
maxihely = &v[i];
}
}
ofstream out("scmax.out");
out << maxi << endl;
while(maxihely)
{
out << maxihely->info << " ";
maxihely = maxihely->kovi;
}
return 0;
}