我们要出租的话,一定是出租产奶量最少的牛

那我们就看出租多少头牛(其他的卖奶)的时候答案最大就可以了。

(注意N有可能小于R)

 #include<bits/stdc++.h>
#define ll long long
#define pa pair<int,int>
using namespace std;
const int maxn=; inline ll rd(){
ll x=;char c=getchar();
while(c<''||c>'') c=getchar();
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x;
} int N,M,R,C[maxn],S[maxn];
pa PQ[maxn];
ll ans,tmp,tmp2; inline bool cmp(int a,int b){return a>b;}
inline bool cmp2(pa a,pa b){return a>b;} int main(){
int i,j,k;
N=rd(),M=rd(),R=rd();
for(i=;i<=N;i++) C[i]=rd();
for(i=;i<=M;i++) PQ[i].second=rd(),PQ[i].first=rd();
for(i=;i<=R;i++) S[i]=rd();
sort(C+,C+N+,cmp);sort(PQ+,PQ+M+,cmp2);sort(S+,S+R+,cmp);
R=min(N,R);for(i=;i<=R;i++) tmp2+=S[i];
for(i=,j=;i<=N;i++){
for(;j<=M&&PQ[j].second<C[i];j++)
tmp+=1LL*PQ[j].first*PQ[j].second,C[i]-=PQ[j].second;
tmp+=1LL*PQ[j].first*C[i],PQ[j].second-=C[i];
ans=max(ans,tmp+tmp2);tmp2-=S[N-i];
}printf("%lld\n",ans);
}

最新文章

  1. express框架
  2. 【AngularJS】—— 10 指令的复用
  3. Codeforces Round #340 Watering Flowers
  4. 动态执行linq 语句 NLinq
  5. 【转】Installing OpenCV on Debian Linux
  6. Java 中使用Jackson反序列化
  7. PHP获取网址的PR值
  8. IIS6 伪静态
  9. 09-移动端开发教程-Sass入门
  10. 关于x-shell连接不上本地虚拟机linux
  11. [UGUI]圆形Image
  12. c语言结构体链表
  13. python使用selector模块编写FTP
  14. Expression Tree Build
  15. 【树莓派+.NET MF打造视频监控智能车】遥控篇
  16. BETA-1
  17. OpenGL ES 3.0 帧缓冲区对象基础知识
  18. python pandas.Series&amp;&amp;DataFrame&amp;&amp; set_index&amp;reset_index
  19. #C++初学记录(素数判断)
  20. 我的AOP那点事儿--1

热门文章

  1. [Spark][Python]groupByKey例子
  2. JVM规范系列第5章:加载、链接与初始化
  3. 微服务之Sping Cloud
  4. SqlBulkCopy简单封装,让批量插入更方便
  5. Ionic 3 延迟加载(Lazy Load)实战(一)
  6. 第三次作业 (一)----------------------Visual Studio 2015的安装及单元测试
  7. 计算机终端安装成功的包 pycharm不能更新
  8. 微软开源的Trill是什么?
  9. ElasticSearch NEST笔记
  10. PAT 1021 个位数统计