列表

详情


NC200379. 谭嫖裤序列

描述

众所周知,trx喜欢白嫖,经常会把别人嫖的裤衩都不剩。

现在有n条长度非严格递增的裤子,每条裤子都有一定的长度,trx打算从最短的裤子开始嫖,嫖完最短的又嫌太短又去嫖最长的,嫖完最长的又去嫖最短的,如此循环。

请输出谭嫖裤序列(即trx白嫖裤子的长度顺序)

输入描述

第一行一个整数,代表裤子个数

第二行n个整数,a_i代表第i条裤子的长度 (裤子长度a为非降序列)

输出描述

一行为trx白嫖的序列

示例1

输入:

5
1 2 3 4 5

输出:

1 5 2 4 3

示例2

输入:

6
1 2 2 3 3 4

输出:

1 4 2 3 2 3

原站题解

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

C++14(g++5.4) 解法, 执行用时: 34ms, 内存消耗: 1252K, 提交时间: 2019-12-14 15:54:47

#include<bits/stdc++.h>
using namespace std;
int a[100080],n;
int main() {
    scanf("%d",&n);
    for(int i=1;i<=n;++i)scanf("%d",a+i);
    int l=1,r=n,f=1,p;
    while(l<=r){
        if(f)p=l++;
        else p=r--;
        f^=1;
        printf("%d ",a[p]);
    }
    return 0;
}

C(clang 3.9) 解法, 执行用时: 26ms, 内存消耗: 1248K, 提交时间: 2019-12-14 13:29:09

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

C++(clang++ 11.0.1) 解法, 执行用时: 27ms, 内存消耗: 1272K, 提交时间: 2023-01-21 13:07:58

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

Python3(3.5.2) 解法, 执行用时: 175ms, 内存消耗: 14568K, 提交时间: 2019-12-13 23:10:59

n=int(input())
l=list(map(int,input().split()))
print(*[item for ll in [[l[i],l[n-i-1]]if i!=n//2-1 or n%2==0 else [l[i],l[i+2],l[i+1]] for i in range(n//2)] for item in ll])

上一题