传送门

贪心,很像田忌赛马那样,但是因为有平局加一分导致那样的贪心不好处理。

先将两个数组从小到大排序。

比较a最大和b最大,如果a比b大,那么直接赢掉

否则 比较a最小和b最小,如果a比b大,那么直接赢掉

否则 比较a最小和b最大,如果相等,那么平局,否则就输掉

#include <cstdio>
#include <iostream>
#include <algorithm>
#define N 100010 using namespace std; int n, la, ra, lb, rb, ans1, ans2;
int a[N], b[N]; inline int read()
{
int x = 0, f = 1;
char ch = getchar();
for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1;
for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';
return x * f;
} int main()
{
int i;
n = read();
for(i = 1; i <= n; i++) a[i] = read();
for(i = 1; i <= n; i++) b[i] = read();
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
la = lb = 1, ra = rb = n;
while(la <= ra)
{
if(a[ra] > b[rb]) ans1 += 2, ra--, rb--;
else if(a[la] > b[lb]) ans1 += 2, la++, lb++;
else ans1 += (a[la] == b[rb]), la++, rb--;
}
la = lb = 1, ra = rb = n;
while(la <= ra)
{
if(a[ra] < b[rb]) ans2 += 2, ra--, rb--;
else if(a[la] < b[lb]) ans2 += 2, la++, lb++;
else ans2 += (a[ra] == b[lb]), ra--, lb++;
}
printf("%d %d\n", ans1, 2 * n - ans2);
return 0;
}

  

最新文章

  1. c语言结构体
  2. UEditor和CKEditor配置上传图片,视频,附件
  3. 【MVC】自定义ASP.NET MVC Html辅助方法
  4. 关于java的JIT知识
  5. java 中 sleep(1000) 和 wait(1000) 的区别?
  6. css3实现各种渐变效果,比较适合做手机触屏版
  7. C#连接Oracle数据库基本类
  8. Jquery-鼠标事件
  9. nodejs爬虫笔记(一)---request与cheerio等模块的应用
  10. python基础下的mysql学习之操作命令(一)
  11. 我的Qt历程1:第一个Qt程序
  12. python基础自学 第一天
  13. Android ListVeiw控件(转载整理)
  14. 【java】类的继承
  15. jquery实现简单的弹出框
  16. 开发JSP自定义标签
  17. 笔记 Bioinformatics Algorithms Chapter2
  18. IDEA隐藏.idea文件夹
  19. react之echarts数据更新
  20. bzoj 4001 [TJOI2015]概率论 数学

热门文章

  1. 【luogu P1783 海滩防御】 题解
  2. IDEA搭建Maven 的聚合项目
  3. BundleConfig的作用
  4. 防止sql注入方法 如何防止java中将MySQL的数据库验证密码加上 &#39; or &#39;1&#39;= &#39;1 就可以出现万能密码 的PreparedStatement
  5. strong和weak
  6. 记录一下CSS outline-width 属性
  7. C++大数问题
  8. ZJOI2019Round#1
  9. MySQL - CASE WHEN ... THEN ... ELSE ... END语句
  10. wamp mysql服务意外停止