Pagini recente » Cod sursa (job #1580540) | Cod sursa (job #1034995) | Cod sursa (job #2790943) | Cod sursa (job #2488239) | Cod sursa (job #148971)
Cod sursa(job #148971)
#include<fstream.h>
long long pred[5000];
long long a[5000],v[5000],n,imax;
ifstream f("subsir2.in");
ofstream g( "subsir2.out");
void citire()
{
f>>n;
for(int i=0;i<n;i++)
f>>a[i];
}
void reconstituie(int i)
{
if(pred[i]+1)
reconstituie(pred[i]);
g<<a[i]<<" ";
}
void prelucreaza()
{
int i,j;
v[0]=1;
imax=0;
pred[0]=-1;
for(i=1;i<n;i++)
{
v[i]=1;
pred[i]=-1;
for(j=0;j<i;j++)
if(a[j]<=a[i]&&v[j]+1>v[i])
{
v[i]=v[j]+1;
pred[i]=j;
}
if(v[i]>=imax)
imax=i;
}
}
void afisare()
{
g<<v[imax]<<"\n";
reconstituie(imax);
}
int main()
{
ifstream f("subsir2.in");
ofstream g("subsir2.out");
citire();
prelucreaza();
afisare();
return 0;
}