Pagini recente » Cod sursa (job #308745) | Cod sursa (job #2263993) | Cod sursa (job #1980749) | Cod sursa (job #2760262) | Cod sursa (job #523414)
Cod sursa(job #523414)
# include <fstream>
using namespace std;
int n, Q[100100], cit, nr;
int cb (int in, int sf, int find){
int ret = 0;
while (in <= sf){
int m = (in + sf) >> 1;
if (Q[m] < find){
ret = m;
in = m + 1;
}
else
sf = m - 1;
}
return (ret > 0 ? ret + 1 : 1);
}
int main (){
std :: ifstream f ("scmax.in");
std :: ofstream g ("scmax.out");
f >> n;
for (int i = 1; i <= n; ++i){
f >> cit;
int val = cb (1, nr, cit);
if (Q[val] > cit || Q[val] == 0)
Q[val] = cit;
if (nr < val) nr = val;
}
g << nr << '\n';
for (int i = 1; i <= nr; ++i)
g << Q[i] << ' ';
g.close ();
return 0;
}