Pagini recente » Cod sursa (job #1350957) | Cod sursa (job #2134437) | Cod sursa (job #3131104) | Cod sursa (job #2228661) | Cod sursa (job #826965)
Cod sursa(job #826965)
#include <fstream>
using namespace std;
#define NMAX 100003
int n, v[NMAX], maxim, k, d[NMAX],c[NMAX], nr;
void caut(int x)
{
int p, u, m;
p = 0; u = nr; m = (p+u)/2;
while (p <= u)
{
if (c[m] < x && c[m+1] >= x)
{
c[m+1]=x;
return;
}
else if (c[m+1] < x) {p = m + 1; m = (p + u)/2;}
else {u = m - 1; m = (p + u)/2;}
}
c[++nr]=x;
}
int main()
{
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int i,j;
fin>>n;
n++;
nr=1;
for(i=1;i<n;i++) fin>>v[i];
c[1]=v[1];
for(i=2;i<n;i++)
{
caut(v[i]);
}
fout<<nr<<endl;
for(i=1;i<=nr;i++)
fout<<c[i]<<" ";
}