1997: Seating Arrangement

Description

Mr. Teacher老师班上一共有n个同学,编号为1到n。 在上课的时候Mr. Teacher要求同学们从左至右按1, 2, …, n的顺序坐成一排,这样每个同学的位置是固定的,谁没来上课就一目了然了。

但是时间长了之后,Mr. Teacher发现坐得离得远的同学往往因为交流很少而逐渐变得生疏了,于是他决定重新安排同学们的座位,并且在新的座位安排中,任意两个相邻的同学的编号之差的绝对值都必须大于d

现在Mr. Teacher需要你帮忙给出一个座位安排方案。

Input

输入包含不超过100组数据。 每组数据包含两个整数n, d(4 ≤ n ≤ 100, 1 ≤ d ≤ n − 2)。

Output

对于每组数据,用一行输出一个可行的座位安排方案,相邻两个数之间用一个空格隔开。 座位安排方案由n个1到n的数组成,从左到右依次描述了各个座位安排给了哪个编号的同学。 如果有多种可行的座位安排方案,输出任意一种即可。 如果不存在满足要求的座位安排方案,则输出“-1”。

Sample Input

6 1
6 3
7 2

Sample Output

2 4 6 1 3 5
-1
1 4 7 3 6 2 5

Hint

对于第一个样例,存在多种可行的方案,如1 3 5 2 4 6,2 5 1 4 6 3,4 6 3 1 5 2等,输出任意一个可行方案即可。

对于第三个样例,同样存在多种可行方案,输出任意一个可行方案即可。

Source

湖南省第十三届大学生计算机程序设计竞赛

【代码】:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<set>
#include<map>
#include<sstream>
#include<queue>
#include<stack>
#include<cmath>
#include<list>
#include<vector>
#include<string> using namespace std;
#define ll long long
const double PI = acos(-1.0);
const double eps = 1e-;
const int inf = 0x3f3f3f3f;
const int N = ;
const int mod = ;
int a[N];
int n, m, d;
int main()
{ while(cin>>n>>d)
{
int f = ;
if(d >= n/){
f = ;
puts("-1");
}
else{
int i = , t = ;
while(i<n){
t++;
a[i++] = n/+t;
a[i++] = t;
}
}
if(f)
for(int i = ; i<n; i++){
printf(i==n-?"%d\n":"%d ",a[i]);
}
}
return ;
}
// [n/2+1] [1] [n/2+2] [2] [n/2+3] [3] ...

中位数通常是构造中的关键

CSU 1997: Seating Arrangement【构造】的更多相关文章

  1. Seating Arrangement

    1997: Seating Arrangement Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 543     Solved:  ...

  2. 2017第十三届湖南省省赛A - Seating Arrangement CSU - 1997

    Mr. Teacher老师班上一共有n个同学,编号为1到n. 在上课的时候Mr. Teacher要求同学们从左至右按1, 2, …, n的顺序坐成一排,这样每个同学的位置是固定的,谁没来上课就一目了然 ...

  3. CSU 1997-Seating Arrangement

    Seating Arrangement Mr. Teacher老师班上一共有n个同学,编号为1到n. 在上课的时候Mr. Teacher要求同学们从左至右按1, 2, -, n的顺序坐成一排,这样每个 ...

  4. UVA - 10249 The Grand Dinner

    Description Problem D The Grand Dinner Input: standard input Output: standard output Time Limit: 15 ...

  5. 【CF MEMSQL 3.0 E. Desk Disorder】

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  6. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)【ABCDF】

    比赛链接:https://codeforces.com/contest/1443 A. Kids Seating 题意 构造一个大小为 \(n\) 的数组使得任意两个数既不互质也不相互整除,要求所有数 ...

  7. Codeforces 906B. Seating of Students(构造+DFS)

    行和列>4的可以直接构造,只要交叉着放就好了,比如1 3 5 2 4和2 4 1 3 5,每一行和下一行用不同的方法就能保证没有邻居. 其他的可以用爆搜,每次暴力和后面的一个编号交换并判断可行性 ...

  8. Codeforces 410C.Team[构造]

    C. Team time limit per test 1 second memory limit per test 256 megabytes input standard input output ...

  9. CSU 1116 Kingdoms(枚举最小生成树)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1116 解题报告:一个国家有n个城市,有m条路可以修,修每条路要一定的金币,现在这个国家只 ...

随机推荐

  1. Storm: 遇到问题总结

    1.没有ack : kafkaspout id 重复导致每次读最新没有数据. 2.由于storm提供的读取kafka的enternal工具存在bug,导致重复读取数据,致使数据不准确.storm bu ...

  2. Nodejs-非阻塞I/O&事件驱动

    1.关于es6变量 const 定义常量,不会发生改变的就用这个 let 定义局部变量 如: const fs=require('fs');//require()表示载入这个模块 function a ...

  3. luogu2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold

    ref #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...

  4. Python框架之Django学习笔记(九)

    模型 之前,我们用 Django 建造网站的基本途径: 建立视图和 URLConf . 正如我们所阐述的,视图负责处理一些主观逻辑,然后返回响应结果. 作为例子之一,我们的主观逻辑是要计算当前的日期和 ...

  5. leetcode 【 Best Time to Buy and Sell Stock II 】python 实现

    题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...

  6. jmeter快捷键

    快捷键 功能 备注 Ctrl + C 复制 可复制组件 Ctrl + V 粘贴 可粘贴组件 Ctrl + Shift + C 复制粘贴当前组件到下一行   Ctrl + R 运行测试计划   Ctrl ...

  7. JWT实现token认证

    演变 1.1 有状态服务 在原来的单体系统中,有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,session+cookie.在如今的大多数分布式系统中 ...

  8. 用Python 3写的一个Spider小爬虫(使用内置urllib模块and正则表达式)

    用Python写了一个Spider小爬虫,爬一爬斗鱼“王者荣耀”在线直播的主播及人气

  9. win 8系统下如何安装搭建python

    python的环境搭建除了python本身,还有Aptana和pip的安装.Aptana提供了更好的集成开发环境,pip主要用于安装第三方的包. 具体安装流程可参考以下两篇文章: InSky关于安装p ...

  10. BZOJ 3990: [SDOI2015]排序(搜索+剪枝)

    [SDOI2015]排序 Description 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1< ...