Cod sursa(job #678095)
| Utilizator | Data | 11 februarie 2012 00:05:48 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long n,i,j,v[100100],lung[100100],poz[100100],maxx,pmax;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>v[i];
lung[i]=1;
}
for(i=n-1;i>=1;i--)
for(j=i+1;j<=n;j++)
if(v[i]<v[j])
if(lung[i]<=lung[j])
{
lung[i]=lung[j]+1;
poz[i]=j;
}
for(i=1;i<=n;i++)
if(lung[i]>maxx)
{
maxx=lung[i];
pmax=i;
}
fout<<maxx<<'\n';
while(pmax!=0)
{
fout<<v[pmax]<<" ";
pmax=poz[pmax];
}
return 0;
}
