问题标题: 酷町堂:1175 糖果奖励(sugar)

0
0

0
已采纳
王子凡
王子凡
高级光能
高级光能

定义一个结构体,

再进行快排,其中要定义一个cmp函数判断甜度和体积(甜度相等再比较体积)

bool cmp(tg a,tg b)
{
    if (a.td!=b.td)
        return a.td>b.td;
    return a.tj>b.tj;
}

最后定义两个累加器分别存储甜度和体积(循环遍历前三个)

for (int i=1;i<=k;i++)
    {
        s+=a[i].td;
        s2+=a[i].tj;
    }

 

0
0
0
0
0
0
时梓繁
时梓繁
修练者
修练者
 int td,tj;
}a[100010];
int n,sum1,sum2,k;
int comp(candy a,candy b)
{
    if(a.td!=b.td)
    return a.td>b.td;
    else return a.tj>b.tj;
}
int main()
{ 
    cin>>n>>k;
  for(int i=1;i<=n;i++)
    cin>>a[i].td;
  for(int i=1;i<=n;i++)
    cin>>a[i].tj;
  sort(a+1,a+1+n,comp);
  for(int i=1;i<=k;i++)
   sum1+=a[i].td;
  for(int i=1;i<=k;i++)
   sum2+=a[i].tj;
  cout<<sum1<<" "<<sum2;
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;
}
核心部分

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

 

0
我要回答