Pagini recente » Cod sursa (job #628755) | Cod sursa (job #2492618) | Cod sursa (job #1684462) | Cod sursa (job #2865680) | Cod sursa (job #2575752)
#include <fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n, lg;
int subsir[100005];
int v[100005];
int binary (int x, int poz)
{
int st = 1, dr = poz, rez = 0, mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[subsir[mij]] < x)
{
rez = mij;
st = mij + 1;
}
else dr = mij - 1;
}
return rez;
}
int main()
{
f >> n;
for (int i=1; i<=n; i++)
{
f >> v[i];
int poz = binary(v[i], lg);
if (poz == lg) lg ++;
subsir[poz+1] = i;
}
g << lg << '\n';
for (int i=1; i<=lg; i++)
g << v[subsir[i]] << " " ;
return 0;
}