Codeforces Round #261 (Div. 2)C题(思维题)

C. Pashmak and Buses
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Recently Pashmak has been employed in a transportation company. The company has k buses and has a contract with a school which has n students. The school planned to take the students to d different places for d days (each day in one place). Each day the company provides all the buses for the trip. Pashmak has to arrange the students in the buses. He wants to arrange the students in a way that no two students become close friends. In his ridiculous idea, two students will become close friends if and only if they are in the same buses for all d days.

Please help Pashmak with his weird idea. Assume that each bus has an unlimited capacity.

Input

The first line of input contains three space-separated integers n, k, d (1 ≤ n, d ≤ 1000; 1 ≤ k ≤ 109).

Output

If there is no valid arrangement just print -1. Otherwise print d lines, in each of them print n integers. The j-th integer of the i-th line shows which bus the j-th student has to take on the i-th day. You can assume that the buses are numbered from 1 to k.

Sample test(s)
input
3 2 2
output
1 1 2 
1 2 1 
input
3 2 1
output
-1

题意: n个人,k个公交,出去游玩d天,每天每个人可以选择任意一辆公交乘坐,最后要你求每天每个人选择的公交并输出,要求所有的d天中,不能至少有两个人

一直在同一辆公交上

思路:可以将k和d转化成一个d位的k进制数,然后最多能够分配的人数为k的d次方个,比如输入8 2 3,那么对多可以安排8个人,每个人的公交安排分别为

000 , 001 , 010 , 011 , 100 , 101 , 110 , 111,这里0表示搭第1辆公交,1表示搭第2辆公交

纯的思维题啊,好题~~

你可能感兴趣的:(ACM,codeforces)