Pagini recente » Cod sursa (job #1055742) | Cod sursa (job #1517303) | Cod sursa (job #424948) | Cod sursa (job #2748037) | Cod sursa (job #1787261)
#include <fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n , V[100001] , sol[100001] , ns , p;
int main()
{
f >> n;
for(int i = 1 ; i <= n ; ++i)
f >> V[i];
sol[n] = 1;
ns = 1;
p = n;
for (int i = n - 1; i >= 1 ; --i )
{
int w = 0;
for(int j = i + 1 ; j <= n ; ++j)
if (sol[j] > w && V[j] > V[i])
w = sol[j];
sol[i] = w + 1;
if ( ns < w + 1 )
{ns = w + 1;
p = i;}
}
g << ns << '\n' << V[p] << ' ';
int k = p;
p++; ns--;
for (int i = p ; i <= n ; ++i)
{
if ( sol[i] == ns && V[i] > V[k] )
{
g << V[i] << ' ';
k = i;
ns --;
}
}
g.close();
return 0;
}