#include <iostream>
#include <vector>

std::vector<std::size_t> GanerateArray(std::size_t N){

	std::vector<std::size_t> vec;
	std::size_t undefined;//不定値

	vec.push_back(undefined);//不備？？昇順なので、0か1の可能性。
	vec.push_back(1);//絶対条件
	vec.push_back(2);//seed??

	for (std::size_t i = 2; i < N; i++)
	{
		for (std::size_t j = 0; j < vec[i]; j++)
		{
			vec.push_back(i);
			if (vec.size() > N) return vec;
		}
	}

	return vec;
}

int main(){
	auto A = GanerateArray(1000);

	std::cout << "N=10:" << A[10] << std::endl;
	std::cout << "N=100:" << A[100] << std::endl;
	std::cout << "N=1000:" << A[1000] << std::endl;

	return 0;
}