Pagini recente » Cod sursa (job #542920) | Monitorul de evaluare | Cod sursa (job #1318331) | Cod sursa (job #2912684) | Cod sursa (job #760876)
Cod sursa(job #760876)
#include<fstream>
using namespace std;
const int N = 100005;
ifstream in("scmax.in");
ofstream out("scmax.out");
int best[N], poz[N], v[N];
void sir(int p)
{
if(p==0) return;
sir(poz[p]);
out << v[p] << " ";
}
int main()
{
int n;
in >> n;
for(int i=1;i<=n;i++)
in >> v[i];
best[1] = 1;
for(int i=2;i<=n;i++) {
best[i] = 0;
for(int j=1;j<i;j++)
if(v[j] < v[i] && best[j] > best[i]) {
poz[i] = j;
best[i] = best[j];
}
best[i] ++;
}
int pmax = 1;
for(int i=2 ; i<=n ; i++)
if(best[i] > best[pmax])
pmax = i;
out << best[pmax] << "\n";
sir(pmax);
return 0;
}