【Tsinghua】面试(Interview)

简介:

面试(Interview)

描述

某公司在对应聘者做过一轮笔试之后,从中选出成绩最高的n 人继续进行面试。在笔试中,每位应聘者已被分配了一个整数ID,面试时将沿用这个ID。

为公平起见,组织者决定利用会议室外的圆桌,按以下方法“随机”确定面试顺序:第一个到达的应聘者在圆桌周围任意选择一个位置坐下;此后到达的每位应聘者都从前一应聘者出发,沿逆时针方向围圆桌走过m 人(前一应聘者算作走过的第1 人,同一人可能经过多次),并紧邻第m 人右侧就座;所有应聘者到齐后,从最后到达者出发,绕圆桌以顺时针方向为序进行面试。

这里假定应聘者到达的时刻互异,且相对的就坐位置确定后,左、右两人之间总能插入一把椅子。

试编写一个程序,对于任给的m 及n 个应聘者ID,确定对应的面试顺序。

输入

共2行。

第1行包含两个整数,以空格分隔,依次表示n和m。

第2行包含n个整数,以空格分隔,表示先后到达的n个应聘者的ID。

输出

共1行。以空格分隔的n个整数,分别表示顺次进行面试的应聘者的ID。

输入样例

3 2
8 9 10

输出样例

10 8 9

限制

1 <= N <= 10^3

1 <= m <= 2*N

输入的ID保证在int类型的范围内。

提示

请借助列表实现


AC的代码:
#include <stdio.h>

int seat[3005];

int main()
{
	int n,m;
	scanf("%d%d",&n,&m);

	int i;
	int ID,pos;

	scanf("%d",&ID);
	if(n==1)
	{
		printf("%d\n",ID);
		return 0;
	}

	seat[1]=ID;
	scanf("%d",&ID);
	seat[2]=ID;
	if(n==2)
	{
		printf("%d %d\n",seat[2],seat[1]);
		return 0;
	}

	pos=2;
	int j;
	for(i=2;i<n;i++)
	{
		scanf("%d",&ID);
		pos=m%i+pos;		//pos 是当前应该放元素的位置
		if(pos>i+1)
			pos=pos-i;

		//test
		//printf("pos=%d\n",pos);

		//移位
		if(pos==i+1)
			seat[i+1]=ID;

		else
		{
			for(j=i;j>=pos;j--)
				seat[j+1]=seat[j];
			//插入 ID
			seat[pos]=ID;
		}
	}

	/*for(i=1;i<=n;i++)
		printf("%d ",seat[i]);
	printf("\n");*/

	//输出
	for(i=pos; ;i--)
	{
		if(i==0)
			i=n;

		if(i==pos+1)
		{
			printf("%d",seat[i]);
			break;
		}
		printf("%d ",seat[i]);
	}
	printf("\n");

	return 0;
}









相关文章
|
存储 人工智能 Java
Java考试常考基础题(Examination Questions Parsing03)
Java考试常考基础题(Examination Questions Parsing03)
72 0
|
4月前
|
安全 算法 Java
Go 面试八股文
Go 面试八股文
233 0
|
4月前
|
SQL 缓存 中间件
「金三银四」这些Go面试题,看看你会几个?
这篇文章分享了gRPC、GoFrame、GoZero、GoMicro、GORM、Gin等主流框架的30道面试题和详解。
305 0
|
存储 Java PHP
Java考试常考基础题(Examination Questions Parsing01) 3
Java考试常考基础题(Examination Questions Parsing01)
60 1
|
Java 索引
Java考试常考基础题(Examination Questions Parsing04)
Java考试常考基础题(Examination Questions Parsing04)
43 0
|
存储 Java 索引
Java考试常考基础题(Examination Questions Parsing02)
Java考试常考基础题(Examination Questions Parsing02)
70 0
|
人工智能 算法 Java
Java考试常考基础题(Examination Questions Parsing01) 2
Java考试常考基础题(Examination Questions Parsing01)
93 0
|
存储 Java 程序员
Java考试常考基础题(Examination Questions Parsing01) 1
Java考试常考基础题(Examination Questions Parsing01)
107 0
|
设计模式 安全 NoSQL
Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)(二)
Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)