Pagini recente » Borderou de evaluare (job #2353037) | Cod sursa (job #578099) | Cod sursa (job #805520) | Cod sursa (job #805519) | Cod sursa (job #872598)
Cod sursa(job #872598)
#include<fstream>
using namespace std;
int a[100001],n,i,x[100001],p;
void cmlsc(int a[],int n,int x[],int &p)
{
int b[100001],c[100001],i,j,amax,poz;
for(i=n;i>=1;i--)
{
amax=0;
poz=0;
for(j=i+1;j<=n;j++)
{
if(a[i]<=a[j] && b[j]>amax)
{
amax=b[j];
poz=j;
}
}
b[i]=1+amax;
c[i]=poz;
}
p=b[1];poz=1;
for(i=2;i<=n;i++)
{
if(b[i]>p)
{
p=b[i];
poz=i;
}
}
j=0;
for(i=poz;i!=0;i=c[i])
{
j++;
x[j]=a[i];
}
}
int main()
{
fstream fin,fout;
fin.open("scmax.in",ios::in);
fout.open("scmax.out",ios::out);
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a[i];
}
cmlsc(a,n,x,p);
for(i=1;i<=p;i++)
{
fout<<" "<<x[i];
}
fin.close();
fout.close();
return 0;
}