Pagini recente » Cod sursa (job #2125681) | Cod sursa (job #1478947) | Cod sursa (job #223788) | Cod sursa (job #2408009) | Cod sursa (job #1557243)
#include <iostream>
#include <fstream>
using namespace std;
const int Nmax = 100005;
int N, v[Nmax];
int pos[Nmax], T[Nmax];
void read()
{
ifstream f("scmax.in");
f >> N;
for(int i = 1; i <= N; i ++)
{
f >> v[i];
}
f.close();
}
void solve()
{
pos[N] = 1;
T[N] = 0;
for(int i = N-1; i >= 1; i --)
{
for(int j = i+1; j <= N; j ++)
{
if(v[i] < v[j])
{
pos[i] = pos[j]+1;
T[i] = j;
break;
}
}
}
}
void print()
{
ofstream g("scmax.out");
int Max = -1, iMax;
for(int i = 1; i <= N; i ++)
{
if(pos[i] > Max)
{
Max = pos[i];
iMax = i;
}
}
g << Max << "\n";
while(iMax != 0)
{
g << v[iMax] << " ";
iMax = T[iMax];
}
g.close();
}
int main()
{
read();
solve();
print();
return 0;
}