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等,输出任意一个可行方案即可。

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

思路: 因为 相邻两个数的差的绝对值一定大于 d,最小满足的情况是 d+1,开始的时候想着,从一个数开始,看看能不能都想差都 想差 d +1 ,但是不行

n= 7  d = 2    1 4 7 2 5 3 6  这时候 5 3 那个地方就相差的是 d了,不满足情况;

我有想着 从一个数开始 加上 d+1 减去 d+2,而这个数要从中间开始,这样就能保证相邻两个数 的差值都大于d了,自己写几个序列,就知道了,d的取值范围了,不管n为奇数还是偶数,只要d>n/2-1的话,都构造不出来;

所以当 d<=n/2-1时, 从中间构造序列,+n/2   -(n/2+1);

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{int i,j;int n,d;while(~scanf("%d%d",&n,&d)){if(d>n/2-1)printf("-1\n");else{int t = n/2;if(n%2)t = t+1;for(i = t,j= 1;j<=n;j++){if(i!=t) printf(" ");printf("%d",i);if(j%2) i = i + n/2;else i = i - (n/2+1);}printf("\n");}} return 0;
} 

Seating Arrangement CSU - 1997 (思维题,是否存在n个数的序列,使得相邻啷个数的差绝对值大于d)相关推荐

  1. 思维题-牛客网-强迫症的序列

    题目: 链接:https://ac.nowcoder.com/acm/contest/90/J?&headNav=www 来源:牛客网 题目描述 牛客网是IT求职神器,提供海量C++.JAVA ...

  2. little w and Soda(思维题)

    链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  3. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  4. yoyo思维题(困难) 组合数学

    问题 B: yoyo思维题(困难) 时间限制: 1 Sec  内存限制: 256 MB 提交: 11  解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...

  5. 1884: 三个家庭(思维题)

    1884: 三个家庭 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 244 Solved: 81 [Submit][Status][Web Board] ...

  6. 思维题 UVA 10881 Piotr's Ants

    题目传送门 1 /* 2 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 3 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 4 关键2:蚂蚁的相对位置 ...

  7. CF--思维练习-- CodeForces - 215C - Crosses(思维题)

    ACM思维题训练集合 There is a board with a grid consisting of n rows and m columns, the rows are numbered fr ...

  8. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  9. CodeForces - 1102A(思维题)

    https://vjudge.net/problem/2135388/origin Describe You are given an integer sequence 1,2,-,n. You ha ...

最新文章

  1. ExpandableListView 里面嵌套GridView实现高度自适应
  2. CTFshow php特性 web134
  3. 计算机教室怎样自动批量修改ip,批量设置IP地址和计算机名
  4. linux实现命令解释器_想在Win10上安装Linux,只需一个命令即可实现
  5. Vista登录密码破解
  6. ionic2 html 转义,ionic2 基于ngx-translate实现多语言切换,翻译
  7. flume avro java 发送数据_flume将数据发送到kafka、hdfs、hive、http、netcat等模式的使用总结...
  8. Windows7下载、安装、配置ADB的步骤
  9. 跟着杨中科学习asp.net之html
  10. 产品流程图的制作方法详解
  11. FPGA/数字IC秋招笔试面试003——FSM有限状态机、三段式状态机(2022届)
  12. AD15复制相同模块布局
  13. jpg在线转换pdf
  14. [电动智能汽车-3]:原理 - 整车控制器VCU功能
  15. 如何控制局域网网速_水星无线路由器怎么设置网速限制【设置方法】
  16. 从 API、UI、结构到商业产品设计精髓
  17. 40.凉鞋问题 11月21日
  18. utc时间 单位换算_将UTC日期转换为毫秒
  19. Finger-一款红队在大量的资产中存活探测与重点攻击系统指纹探测工具
  20. 演讲:星座决定命运(密码为作者姓名拼音)

热门文章

  1. win10安装wsl步骤
  2. 傅里叶变换性质和常见信号的傅里叶变换
  3. “开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用
  4. python图像算法工程师_图像算法工程师的岗位职责
  5. Spark处理数据倾斜问题
  6. 5g消息与服务器,5G消息app下架 中国移动回应会重新上架
  7. Java语言 随机点名程序
  8. [POI2008]MAF-Mafia
  9. 【.Net平台下插件开发】-MEF与MAF初步调研
  10. 使用AD16画板步骤