Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36086 | j136 | 【S】T4 | C++ | 解答错误 | 0 | 0 MS | 276 KB | 527 | 2025-02-07 15:23:58 |
#include<bits/stdc++.h> using namespace std; int n,a[1145],prefix[1145],ans=0,len,r,t,pos=2; bool cmp(int x,int y){ return x>y; } int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n,r=len=__lg(n)+!!(__builtin_popcount(n)-1),t=len+1; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+n+1,cmp),ans+=a[1]*len; for(int i=1;i<=n+15;i++)prefix[i]=prefix[i-1]+a[i]; while(pos<=n+1&&r>0)ans+=(prefix[min(pos+r-1,n+10)]-prefix[pos-1])*t,t++,pos+=r,r--; cout<<ans; return 0; }