0分
查看原帖
0分
512407
codejiahui楼主2023/1/2 22:59
#include<iostream>
#include<queue>
#include<map>
using namespace std;
int a[1000010];
priority_queue<long long> q;
int main()
{
    int n,p,q;
    scanf("%d%d%d",&n,&p,&q);
    for (int i = 1;i <= n;i++)
    {
        scanf("%d",&a[i]);
        q.push(1ll * a[i] * p);
        q.push(1ll * a[i] * q);
    }
    long long sum = 0;
    for (int i = 1;i <= n;i++)
    {
        sum += q.top();
        q.pop();
    }
    for (int i = 1;i <= n;i++)
    {
        sum -= q.top();
        q.pop();
    }
    printf("%lld\n",sum);
    int x = 1;
    for (int i = 1;i <= n;i++)
    {
        printf("%d ",x);
        x = (n + 1 + (i%2==0?1:0)) - x;
    }
    return 0;
}
2023/1/2 22:59
加载中...