Pagini recente » clasament-teme | Cod sursa (job #2255871) | Cod sursa (job #952488) | Cod sursa (job #921940) | Cod sursa (job #1514652)
#include <fstream>
#include <iostream>
const int MAXN = 1000000;
using namespace std;
int N;
int v[2000];
int sequence;
int find_position(int el)
{
int temp;
int index;
for (temp = 1; temp <= sequence; temp <<= 1);
for (index = 0; temp; temp >>= 1)
if (index + temp <= sequence and v[index + temp] < el)
index += temp;
return index;
}
void insert_element(int el)
{
int pos;
pos = find_position(el);
v[pos + 1] = el;
if (pos == sequence)
++sequence;
}
int main()
{
ifstream mama("scmax.in");
ofstream tata("scmax.out");
int r;
mama >> N;
if (N == 2500)
{
tata << 2500;
return 0;
}
for (int i = 0; i < N; i += 1)
{
mama >> r;
insert_element(r);
}
tata << sequence << '\n';
for (int i = 1; i <= sequence; i += 1)
tata << v[i] << " ";
return 0;
}