Pagini recente » Cod sursa (job #682797) | Cod sursa (job #677280)
Cod sursa(job #677280)
#include<fstream>
#define DIM 5001
using namespace std;
ifstream in("subsir2.in");
ofstream out("subsir2.out");
int V[DIM], Best[DIM], Apar[DIM], indice, maxim;
int N;
void print(int pos)
{
if( Apar[pos] == 0 )
{
out << V[pos]<< " ";
return;
}
else
{
print(Apar[pos]);
out << V[pos] << " ";
}
}
int main()
{
int i, k, position;
in >> N;
for(i = 1; i <= N; i++)
in >> V[i];
for(i = 1; i <= N; i++)
{
maxim = 0;
for(k = i-1; k >=1; k--)
{
if( V[i] > V[k] )
if( maxim < Best[k] )
{
maxim = Best[k];
indice = k;
}
}
if( maxim )
{
Best[i] = maxim + 1;
Apar[i] = indice;
}
else
{
Best[i] = 1;
Apar[i] = 0;
}
}
maxim = 0;
for(i = 1; i <= N; i++)
if( Best[i] > maxim )
{
maxim = Best[i];
position = i;
}
out << maxim << '\n';
print(position);
}