NC248436. 暖色记忆
描述
《暖色记忆》
心灵的橱窗陈设着一个又一个纪念品我细数这些珍宝小心翼翼拭去上面的灰尘
那一次故意安排的不期而遇那一双始终注视你的侧影的眼睛缟衣下清秀的容颜填补了年少的我的每个梦境
时光荏苒而逝暖色的记忆 早已把我淹没我宁可沉溺其中倾尽我的一切也要延后那注定消逝的命运
输入描述
第一行输入一个正整数,代表数组的大小。
第二行输入个正整数,代表数组的元素。
输出描述
小红操作结束后,最后元素之和的最大值。
示例1
输入:
4 1 2 3 4
输出:
2
说明:
先选择第二个数染红,删除第一个数,然后将染红的数除以2,数组变成C++(clang++ 11.0.1) 解法, 执行用时: 53ms, 内存消耗: 1180K, 提交时间: 2023-02-14 22:06:48
#include<bits/stdc++.h> using namespace std; long long n,a[200002],i,b=2,s; int main() { cin>>n; for(i=1;i<=n;i=i+1)cin>>a[i]; sort(a+1,a+n+1); for(i=n;i>max(n/2,n-40);i=i-1) { s=s+a[i]/b; b=b*2; } cout<<s; return 0; }
pypy3 解法, 执行用时: 156ms, 内存消耗: 33260K, 提交时间: 2023-02-14 19:33:53
n=int(input()) a=sorted(map(int,input().split())) res=0 for i in range(1,n//2+1): res+=a.pop()>>i print(res)
Python3 解法, 执行用时: 117ms, 内存消耗: 15744K, 提交时间: 2023-02-23 17:15:58
n=int(input())>>1 print(sum(x>>i+1 for i,x in enumerate(sorted(list(map(int,input().split())))[n:][::-1])))