Pagini recente » Cod sursa (job #1981736) | Cod sursa (job #735067) | Cod sursa (job #290164) | Cod sursa (job #1663239) | Cod sursa (job #2172950)
# include <fstream>
# define DIM 100010
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int d[DIM],t[DIM],v[DIM],Marcat[DIM],vec[DIM],n,x,i,j,step,sol,nr;
int main () {
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
for(step=1;step<=sol;step*=2);
for(j=0;step;step/=2)
if(j+step<=sol&&v[d[j+step]]<v[i])
j+=step;
d[j+1]=i;
t[i]=d[j];
if(j==sol)
sol++;
}
fout<<sol<<"\n";
for(i=n;i>=1;i--){
if(!Marcat[i]){
j=i;
nr=0;
while(j!=0){
Marcat[j]=1;
vec[++nr]=v[j];
j=t[j];
}
if(nr==sol){
for(i=sol;i>=1;i--)
fout<<vec[i]<<" ";
return 0;
}
}
}
return 0;
}