Pagini recente » Cod sursa (job #2981370) | Cod sursa (job #1064038) | Cod sursa (job #1168609) | Cod sursa (job #2462952) | Cod sursa (job #1610858)
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001],sol[100001],pred[100001],n;
int maxim(int a, int b)
{
if(a>b)
return a;
return b;
}
int calc()
{
int i,j,maxx=1;
sol[1]=1;
for(i=2;i<=n;i++)
{
sol[i]=0;
for(j=1;j<i;j++)
if(v[j]<v[i])
if(sol[j]>sol[i])
{
sol[i]=sol[j];
pred[i]=j;
}
sol[i]++;
if(sol[i]>sol[maxx])
maxx=i;
}
return maxx;
}
void afis(int i)
{
if(pred[i])
afis(pred[i]);
g<<v[i]<<" ";
}
int main()
{
int i,poz;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
poz=calc();
g<<sol[poz]<<"\n";
afis(poz);
return 0;
}