Pagini recente » Cod sursa (job #1248974) | Cod sursa (job #464428) | Cod sursa (job #2216621) | Cod sursa (job #1575972) | Cod sursa (job #1780244)
#include <stdio.h>
int v[100001];
int CB(int x, int n){
int pas=1, rez=0;
while(pas<n)
pas*=2;
for(pas/=2;pas>0;pas/=2)
if(v[rez+pas]!=0 && x>v[rez+pas])
rez+=pas;
return rez;
}
int main()
{
int n, i, poz, max=0, x;
FILE *fi=fopen("scmax.in", "r"), *fo=fopen("scmax.out", "w");
fscanf(fi, "%d", &n);
for(i=0;i<n;i++){
fscanf(fi, "%d", &x);
poz=CB(x,n);
v[poz+1]=x;
if(poz+1>max)
max=poz+1;
}
fprintf(fo, "%d\n", max);
for(i=1;i<=max;i++)
fprintf(fo, "%d ", v[i]);
fclose(fi);
fclose(fo);
return 0;
}