Pagini recente » Cod sursa (job #2048) | Cod sursa (job #427044) | Cod sursa (job #596964) | Cod sursa (job #1174750) | Cod sursa (job #186738)
Cod sursa(job #186738)
#include<fstream.h>
#define g 100003
int poz,a[g],c[g],b[g],d[g],n,s;
void binsearch (int value)
{
poz=-1;
int middle,left=1,end=s;
while (left<=end)
{
middle=(left+end)/2;
if (b[middle]>=value)
{
end=middle-1;
poz=middle;
}
else
left=middle+1;
}
}
int main()
{
ifstream be ("scmax.in");
ofstream ki ("scmax.out");
int n,i,j;
be>>n;
for (i=1;i<=n;i++)
{
be>>a[i];
binsearch (a[i]);
if (poz==-1)
{
b[++s]=a[i];
c[i]=s;
}
else
{
b[poz]=a[i];
c[i]=poz;
}
}
be.close();
int ok;
ok=s;
ki<<s<<'\n';
while (ok)
{
while (ok!=c[i])
i--;
d[ok]=a[i];
ok--;
}
for (i=1;i<=s;i++)
ki<<d[i]<<" ";
ki<<'\n';
ki.close();
return 0;
}