列表

详情


NC213471. 爱丽丝的人偶(一)

描述

爱丽丝有个人偶,每个人偶的身高依次是
现在她要将这个人偶摆成一排。
但是人偶被设置了魔法。假设对一个非两端的(不在队首也不在队尾)人偶而言,她相邻的两个人偶,一个比高、一个比矮,那么就会爆炸。
爱丽丝想找到一种摆法,使得所有人偶都不会爆炸。你能帮帮她吗?

输入描述

一个正整数 

输出描述

满足要求的一种摆法。如果有多解,输出任意一种摆法即可。

示例1

输入:

3

输出:

1 3 2

说明:

对于第二个人偶,她两边的两个人偶都比她矮,满足要求。
另外,[3 1 2]、 [2 1 3] 、[2 3 1]这三种摆法也都满足要求。输出这三种摆法也视为正确。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(clang11) 解法, 执行用时: 57ms, 内存消耗: 6964K, 提交时间: 2020-11-21 12:14:52

#include<stdio.h>


int main(){
	int n,i,j;
	scanf("%d",&n);
	for(i=1,j=n;i<=n/2;i++,j--){
		printf("%d %d ",i,j);
	} 
	if(n%2!=0)printf("%d",i);
	return 0;
}

C++(clang++11) 解法, 执行用时: 8ms, 内存消耗: 888K, 提交时间: 2020-11-24 11:24:24

#include<stdio.h>
int main()
{
	int n,i;
	scanf("%d",&n);
	for(i=1;i<=n/2;i++)
	printf(" %d %d",i,n-i+1);
	if(n%2!=0)
	printf(" %d ",(n+1)/2);
}

Python3 解法, 执行用时: 100ms, 内存消耗: 5276K, 提交时间: 2022-06-11 23:06:52

n=int(input())
m=n>>1
if n&1:
    print(n,end=' ')
for x in range(m):
    print(x+1,x+1+m,end=' ')

上一题