Cod sursa(job #798437)
Utilizator | Data | 16 octombrie 2012 17:16:02 | |
---|---|---|---|
Problema | Subsir 2 | Scor | 45 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.03 kb |
#include<fstream>
using namespace std;
int n,b,a[100005],urm[100005],l[100005],i,j,p;
ifstream cin ("subsir2.in");
ofstream cout("subsir2.out");
int main()
{
cin>>n;p=n; urm[n]=-1;
l[n]=1;
for(i=1;i<=n;i++)
cin>>a[i]; int max=1;
for(i=n;i>=1;i--)
{ urm[i]=-1;
l[i]=1;
for(j=n;j>i;j--)
if(a[i]<a[j]&&l[i]<l[j]+1)
{
l[i]=l[j]+1;
urm[i]=j;
if(l[i]>max)
max=l[i], p=i;
} }
int aux=0;
cout<<max<<endl;
for(int k=p;k>1;k--)
for(int k2=k-1;k2>1;k2--)
{
/*if(a[k]>a[k2])
{
aux=a[k];
a[k]=a[k2];
a[k2]=aux;
}
*/
}
i=p;
while(i!=-1)
{cout<<i<<" ";i=urm[i];
}
return 0;
}