UVALive 2757

来源:互联网 发布:华润电力 知乎 编辑:程序博客网 时间:2024/06/07 06:05

n个商品,每个商品有一个保质期和利润,每个需要一天卖出,最终获得的利润最大是多少。

价格从大到小排序,看商品i的保质期之前是不是有一天是空闲的,如果是那就把它加入。

#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;struct node{int w,d;}a[13023];int cmp(node q,node w){return q.w>w.w;}int vis[12000];int main(){int n;while(scanf("%d",&n)==1){memset(vis,0,sizeof(vis));for(int i=0;i<n;i++)scanf("%d%d",&a[i].w,&a[i].d);sort(a,a+n,cmp);int ans=0;for(int i=0;i<n;i++){for(int j=a[i].d;j>=1;j--)if(vis[j]==0){vis[j]=1;ans+=a[i].w;break;}}printf("%d\n",ans);}return 0;}


原创粉丝点击