#include <stdlib.h>
#include <stdio.h>

int *
make_random_list(len, max)
{
	int *unused, *result;
	int idx, num;

	unused = malloc(max * sizeof(int));
	result = malloc(len * sizeof(int));
	for (idx = 0;idx < max;idx++)
		unused[idx] = idx;

	for (idx = 0;idx < len;idx++) {
		num = rand() % (max - idx);
		result[idx] = unused[num];
		unused[num] = unused[max - idx - 1];
	}

	free(unused);
	return result;
}

int
main(int argc, char *argv[])
{
	int len, max, idx;
	int *result;

	if (argc < 3) {
		fprintf(stderr, "Usage: random_count <list length> <max number>\n");
		return 1;
	}

	len = atoi(argv[1]);
	max = atoi(argv[2]);

	srand(time(NULL));
	result = make_random_list(len, max);
	return 0;
}
