列表

详情


NC238008. 阿宁吃粽子

描述

阿宁的公司给阿宁发了各种口味的粽子。
一共有 n 条粽子,每条粽子有个美味值 a_i
阿宁想立即吃下全部。吃下第 k 条粽子时,该粽子的美味值是 x,阿宁获得 的愉悦值。(k1 开始)

阿宁想安排一下吃粽子的顺序,使她获得的愉悦值最大。

输入描述

第一行输入一个正整数 n
第二行输入 n 个正整数 a_ia_i 表示第 i 条粽子的美味值。


输出描述

一行输出 n 个正整数,第 j 个数表示吃下的第 j 条粽子的美味值。

如果有多解,请把美味值较大的粽子,安排到后面。(好吃的留到后面)

示例1

输入:

3
3 1 2

输出:

1 2 3

说明:

该方案美味值为 1 \times 2^1 + 2 \times 2^2 + 3 \times 2^3 = 34,没有别的方案的愉悦值大于 34

示例2

输入:

12 
4 4 4 3 3 3 2 2 2 1 1 1

输出:

1 2 2 3 3 3 4 4 4 1 1 2

原站题解

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

C++(clang++ 11.0.1) 解法, 执行用时: 104ms, 内存消耗: 4716K, 提交时间: 2022-12-01 22:33:05

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m=0;
	cin>>n;
	int a[n+1],b[n+1];
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	sort(a,a+n);
	int x=10;
	int s=10;
	while(x--)
	{
		for(int i=s;i<=n;i+=10)
		{
			b[i]=a[m++];
		}
		s=s%10+1;
	}
	for(int i=1;i<=n;i++)
	{
		cout<<b[i]<<" ";
	}
	return 0;
}

pypy3 解法, 执行用时: 407ms, 内存消耗: 43396K, 提交时间: 2022-09-21 10:52:12

n=int(input())
a=[0]+list(map(int,input().split(' ')))
a.sort()
tar=[0]*(n+1)

x=0
for i in range(10):
    for j in range(i,n+1,10):
        tar[j]=a[x]
        x+=1
for i in range(1,n+1):
    print(tar[i],end=' ')

Python3 解法, 执行用时: 1299ms, 内存消耗: 28952K, 提交时间: 2022-08-27 14:58:36

n=int(input())
l=[*map(int,input().split())]
l.sort()
ans = [0] * n
c = 0
for i in [9,0,1,2,3,4,5,6,7,8]:
    for j in range(i, n, 10):
        ans[j] = l[c]
        c += 1
print(*ans)

上一题