Codeforces 439D Devu and his Brother 三分
2024-08-25 17:24:27
题目链接:点击打开链接
= - =曾经的三分姿势不对竟然没有被卡掉,,,太逗。。
#include<iostream>
#include<string>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<cstring>
#include<stack>
#include<cmath>
#include<queue>
using namespace std;
#define M 200004
#define N 100040
#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define Mid(x,y) ((x+y)>>1)
#define ll __int64
#define Sum(x) tree[x].sum
#define Mod(x) tree[x].mod
#define inf 1000000000
ll n,m;
ll a[N],b[N];
ll ok(ll x){
ll ans = 0;
for(ll i = 1; i <= n; i++)if(x>a[i])ans+=(x-a[i]);
for(ll i = 1; i <= m; i++)if(x<b[i])ans+=(b[i]-x);
return ans;
}
int main(){
ll i,j,u,v;
while(~scanf("%I64d %I64d",&n,&m)){
ll minn = inf, maxx = 0;
for(i=1;i<=n;i++)scanf("%I64d",&a[i]), minn = min(minn,a[i]);
for(i=1;i<=m;i++)scanf("%I64d",&b[i]), maxx = max(maxx,b[i]);
if(minn>=maxx){puts("0");continue;}
ll ans = inf;
ll l = minn, r = maxx;
ans = min(ok(l),ok(r));
while(l<r){
ll mid1 = (l+r)/2, mid2 = (mid1+r)/2;
ll tmp1 = ok(mid1), tmp2 = ok(mid2);
if(tmp1>tmp2)
l = mid1;
else r = mid2;
ans = min(ans, min(tmp1, tmp2));
}
printf("%I64d\n",ans);
}
return 0;
}
/*
2 2
2 3
3 5
3 2
1 2 3
3 4
3 2
4 5 6
1 2 */
最新文章
- 推荐几款我一直在用的chrome插件(下)
- Autodesk Vault: 获取授权失败
- Django--models连表构建
- LOL-无双剑姬我的最爱
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&;障碍物判定
- POJ 1486 Sorting Slides (二分图关键匹配边)
- perl 正则详解
- mongodb导出命令
- .Net Core 中使用Session
- CodeForces 722B
- single number i &;&; ii &;&; iii
- 关于List<;T>; 的排序
- Sublime编辑器的使用
- 【JS】JavaScript 指定日期增加天数
- CentOS安装FTP服务
- [sklearn] 实现随即梯度下降(SGD)&;分类器评价参数查看
- 洛谷P4546 [THUWC2017]在美妙的数学王国中畅游 [LCT,泰勒展开]
- python语法_while循环_for循环
- eclipse中创建DataBase Connections
- Xshell 使用数字小键盘进行vim 写入操作.
热门文章
- Android 设置thumb图片大小
- proc 文件系统调节参数介绍
- Webform——服务器控件与客户端控件
- WordPress 3.5.1远程代码执行漏洞
- WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
- mac book air 装win7
- 【转】IOS 怎么获取外设的广播数据AdvData
- [Irving] Android 点击两次返回退出系统
- Flex 箭头(军标)库封装完成
- Mac OS X Mountain Lion安装Bochs