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
