问题标题: 1175

0
0

0
已采纳
朱宗晔
朱宗晔
初级光能
初级光能

主函数外面 

struct candy{
    int td,tj;
}yes[100010]; 
int cmp(const candy& a,const candy& b)
{
    if(a.td!=b.td) return a.td>b.td;
    if(a.tj!=b.tj) return a.tj>b.tj;
    return a.td>b.td;
}

核心部分

for(int i=1;i<=n;i++) cin>>yes[i].td;
    for(int i=1;i<=n;i++) cin>>yes[i].tj;
    sort(yes+1,yes+n+1,cmp);
    for(int i=1;i<=m;i++)
    {
        sum+=yes[i].td;
        ans+=yes[i].tj;
    }
    cout<<sum<<" "<<ans<<endl;

 

0
0
樊澄宇
樊澄宇
新手光能
新手光能

先把所有数据用结构体记录下来,然后按糖果甜度从大到小排序,甜度一样按体积从大到小排序

最后把前k个甜度和体积分别相加,输出。

0
舒航
舒航
新手守护
新手守护

用个数组存取,再排序,在输出就搞定了!

望采纳!!!

我要回答