csuoj 1559 外卖的撕‘哔’大战

来源:互联网 发布:和讯网数据 编辑:程序博客网 时间:2024/06/10 08:53

思路:对优惠按满的钱进行排序,然后分别计算出每一次点外卖的钱,最后相加,详见代码


#include <iostream>#include <stdio.h>#include <algorithm>#include <cstring>using namespace std;struct note{int x,y;};int cmp(note aa,note bb){return aa.x<bb.x;}note a[100000],b[100000];int main(){//freopen("in.txt","r",stdin);int t;scanf("%d",&t);while(t--){int n,m;scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d%d",&a[i].x,&a[i].y);sort(a,a+n,cmp);for(int i=0;i<m;i++){scanf("%d",&b[i].x);b[i].y = b[i].x;}for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(b[i].x<a[j].x)break;b[i].y = min(b[i].y,b[i].x-a[j].y);}}int ans = 0;for(int i=0;i<m;i++)ans+=b[i].y;printf("%d\n",ans);}}


0 0
原创粉丝点击