//枚举高度[1,100000],>l的全部割掉,<l的砍掉最小的
#include<bits/stdc++.h>
using namespace std;
#define N 100005
#define ll long long
struct Node{ll id,l,d;}a[N],b[N];
int cmp(Node a,Node b){
return a.l<b.l;
}
ll n,cnt[];
ll sum[N];
ll query(ll k){
if(k<)return ;
ll res=;
for(int i=;i<=;i++){
if(k>cnt[i]){
res+=cnt[i]*i;
k-=cnt[i];
}else if(k<=cnt[i]){
res+=k*i;
break;
}
}
return res;
} int main(){
cin>>n;
for(int i=;i<=n;i++)cin>>a[i].l;
for(int i=;i<=n;i++)
cin>>a[i].d,a[i].id=i;
for(int i=;i<=n;i++)b[i]=a[i];
sort(b+,b++n,cmp); for(int i=;i<=n;i++)sum[i]=sum[i-]+b[i].d; ll ans=0x3f3f3f3f3f3f3f3f;
for(int l=,r;l<=n;l=r+){
r=l;
while(b[r+].l==b[l].l)r++;
ll tmp=sum[n]-sum[r],len=r-l+;
tmp+=query(r-(len*-));
ans=min(ans,tmp);
for(int i=l;i<=r;i++)
cnt[b[i].d]++;
}
cout<<ans<<endl;
}

最新文章

  1. MySQL索引类型总结和使用技巧以及注意事项
  2. 如何理解泛型中的new()约束
  3. GridLookUpEdit多列模糊查询最简单方式 z
  4. PHPUnit单元测试中类protected/private方法测试
  5. 关于TCP的粘包
  6. 【BZOJ】【1040】【ZJOI2008】骑士
  7. linux中清除cache的方法
  8. fedora下的dropbox
  9. chrome浏览器更新到chrome 29.0.1547.76 m,多出一些蛋疼的功能来。
  10. Morris Traversal 二叉树遍历。
  11. 附加、分离数据库和备份、还原数据库的区别(转载于中雪的BLOG)
  12. 学习python 一些错误记录
  13. POJ 2217 Secretary (后缀数组)
  14. selenium firefox
  15. C++ 常见面试题目
  16. A锚点实现,滚动页面内容改变tab选项
  17. learning makefile = and :=
  18. springboot入门(一)--快速搭建一个springboot框架
  19. pyqt5猜数小程序
  20. [转载].NET开发常用的10条实用代码

热门文章

  1. c++11 委派构造函数
  2. Python--同步锁(互斥锁)、死锁(状态)、递归锁、信号量、Event对象
  3. Android中应用锁的实现之账号盗取
  4. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件
  5. python 网络编程:socket
  6. haproxy笔记
  7. java并发编程笔记(三)——线程安全性
  8. IOS 创建目录/文件夹
  9. Python 定时任务框架 APScheduler 详解
  10. 防止重复提交 aspx.net