Pagini recente » Cod sursa (job #575808) | Cod sursa (job #420754) | Cod sursa (job #575339) | Cod sursa (job #416126) | Cod sursa (job #1558610)
#include <fstream>
using namespace std;
const int NMAX = 100001;
int v[NMAX];
int c = 0;
inline int cbin(int x);
int main() {
ifstream in("scmax.in");
int n, cit, x;
in >> n >> v[0];
for (int i = 1; i < n; i++) {
in >> cit;
if (cit > v[c]) {
v[++c] = cit;
continue;
}
x = cbin(cit);
v[x] = cit;
}
ofstream out("scmax.out");
out << c + 1 << '\n';
for (int i = 0; i <= c; i++)
out << v[i] << ' ';
in.close();
out.close();
return 0;
}
int cbin(int x) {
int a = -1, b = 1 << 30;
while (b > 0) {
if (a + b <= c && v[a + b] < x)
a += b;
b /= 2;
}
return a + 1;
}