zoukankan      html  css  js  c++  java
  • CSU 1997-Seating Arrangement

    Seating Arrangement

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

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

    题解 :思维题。

    #include<stdio.h>
    #include<string.h>
    int  a[110];
    int n,d;
    int main()
    {
        while(scanf("%d%d",&n,&d )!=EOF){
            if(d>=n/2)//此处为-1的情况。
                printf("-1
    ");
            else
            {
                int t=0,k=0;
                while(k<n)
                {
                    t++;
                    a[k++]=n/2+t;
                    a[k++]=t;
    
                }
                for(int i=0;i<n-1;i++)
                    printf("%d ",a[i] );
                printf("%d
    ",a[n-1] );
            }
    
        }
    
        return 0;
    }
  • 相关阅读:
    Abaqus刚体建模方法
    Abaqus 幅值曲线—与时间相关的函数定义
    Abaqus/CAE 热-力耦合分析
    数据库设计要遵循的点
    c# 面向对象的编程思想
    领导要求你去做不属于你工作范围内的工作,你是答应还是委婉拒绝?
    工作总结&成长感悟
    jquery中的ajax方法参数
    swal() 弹出删除确认框
    serializearray()的具体使用
  • 原文地址:https://www.cnblogs.com/-xiangyang/p/9220239.html
Copyright © 2011-2022 走看看