Cod sursa(job #1514626)

Utilizator meriniucrMeriniuc Razvan- Dumitru meriniucr Data 31 octombrie 2015 13:06:30
Problema Subsir crescator maximal Scor 55
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#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;
	for (int x, 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;
}