程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 構造數列Codeforces Round #261 (Div. 2)C

構造數列Codeforces Round #261 (Div. 2)C

編輯:C++入門知識

構造數列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 nstudents. 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
Note

Note that two students become close friends only if they share a bus each day. But the bus they share can differ from day to day.



題意:n個學生,k張車(容量無限),d天,要求每個學生每天所坐的車,要求不能有學生d天全部坐同一張車.

當成k進制來搞就行,當成n個d位的k進制數,至少有一位不同就行.代碼如下:

#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long LL;
int A[1005][1005];
int main()
{
    int n,d,k;
    while(~scanf("%d%d%d",&n,&k,&d))
    {
        bool f1=false;
        LL tmp=1;
        for(int i=1;i<=d;i++)
        {
            tmp*=k;
            if(tmp>=n)
            {
                f1=true;
                break;
            }
        }
        if(!f1){
            puts("-1");
            continue;
        }
        for(int i=0;i


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved