贪心,每一个物品运到家的花费是单价+运费
#include<stdio.h>
#include<algorithm>
using namespace std;
#define inf 1000
struct node
{
int len,tot,mon,act;
}edge[inf];
int cmp(node a,node b)
{
return a.act<b.act;
}
int k,e,n;
int main()
{
scanf("%d %d %d",&k,&e,&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d %d",&edge[i].len,&edge[i].tot,&edge[i].mon);
edge[i].len=abs(edge[i].len-e);
edge[i].act=edge[i].len+edge[i].mon;
}
sort(edge+1,edge+1+n,cmp);
int ans=0;
for(int i=1;i<=n;i++)
{
ans+=edge[i].act*min(k,edge[i].tot);
if(k-edge[i].tot>0)
{
k-=edge[i].tot;
}else
{
break;
}
}
printf("%d",ans);
}