Pagini recente » Cod sursa (job #87416) | Cod sursa (job #489547) | Cod sursa (job #382927) | Cod sursa (job #1860280) | Cod sursa (job #246002)
Cod sursa(job #246002)
#include<fstream>
#define NMAX 100001
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[NMAX],b[NMAX],c[NMAX],d[NMAX],n,nb;
int poz,ok;
void bin_search(int key)
{
int lo=1,hi=nb,mid;poz=-1;
while(lo<=hi)
{
mid=lo+(hi-lo)/2;
if(b[mid]>=key) poz=mid, hi=mid-1;
else lo=mid+1;
}
}
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
bin_search(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;
}