Pagini recente » Cod sursa (job #1909155) | Cod sursa (job #2208090) | Cod sursa (job #693748) | Cod sursa (job #3201486) | Cod sursa (job #180432)
Cod sursa(job #180432)
#include<fstream.h>
#define Nmax 100001
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[Nmax],b[Nmax],c[Nmax],d[Nmax],na,nb;
int poz,ok;
void cautbin(int val)
{
int st=1,end=nb,mij;poz=-1;
while(st<=end)
{
mij=(st+end)/2;
if(b[mij]>=val)
{
poz=mij;
end=mij-1;
}
else st=mij+1;
}
}
int main()
{
int i;
f>>na;
for(i=1;i<=na;i++)
{
f>>a[i];
cautbin(a[i]);
if(poz==-1)
{
b[++nb]=a[i];
c[i]=nb;
}
else
{
b[poz]=a[i];
c[i]=poz;
}
}
ok=nb;
while(ok>0)
{
while(ok!=c[i])
i--;
d[ok]=a[i];
ok--;
}
g<<nb<<'\n';
for(i=1;i<=nb;i++)
g<<d[i]<<" ";
return 0;
}