Description

陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺。 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选方法:假设共有 n 名候选陪审团成员,则由甲先提名 s 位候选人,再由乙在甲提名的 s 位候选人中选出 t 名,作为最终的陪审团成员。显然这里应当有n ≥ s ≥ t。假设候选人 k 对甲、乙的有利程度都可以用一个二元组(??, ??)来表示,??越大说明候选人 k 对甲越有利,??越大则对乙越有利。在此前提下,双方的目标都变得明确:甲要最大化最终陪审团 t 人的 x 之和,最小化 y之和,乙则反之。 现在甲方决定聘请你为律师,并且事先得知了乙方律师的策略:乙方律师会在你提名的 s 名候选人中选出 t 名使得这 t 人的 y 值之和最大,再保证 y 值之和最大的前提下使得 x 值之和尽量小(在对乙方最有利的前提下对甲方最不利)。 现在你应当慎重地提名 s 位候选人使得最终由乙方律师确定的 t 人 x 值和最大,若有多种方案,则应再使被乙方排除掉的 s-t人的 y 值和尽量大,在此基础上最大化 s 人的 x 值 之和,在此基础上最小化 s 人的 y 值 之和。 你的当事人并不关心你提名的具体是哪些人,只要你告诉他你提名的 s 人的 x 值之和 与 y 值之和。

Input

第一行包含三个整数 n,s,t。 接下来 n 行,每行两个整数分别表示??, ??。

Output

共一行两个整数,分别为 x 值之和与 y 值之和。 

Solution

若甲方只能选t名,那乙方就别无选择了。那甲方选s名,乙方是否能也别无选择的选t名呢?

是能的!

首先,将yk从小到大排序(第一次),去后(n-s+t)名。

那么甲方在后面无论怎么选t名,乙方也只能选这t名,因为都比前(s-t)名对乙方的贡献大。

因为要使对甲方的贡献最大,那么在将后(n-s+t)名以xk为关键字从大到小排序(第二次),选前t名。

因为还要求(s-t)名对乙方的贡献尽量大,在将出去t名的序列以yk为关键字从大到小排序(第三次)。

只要第三次排序的序列的yk值不比所选的t名的最小的yk值大,就可以选,选完(s-t)个即可。

代码

  1 var
  2   ansx,ansy:int64;
  3   n,s,t:longint;
  4   xk,yk,a,b:array [0..100001] of longint;
  5 procedure init;
  6 var
  7   i:longint;
  8 begin
  9   readln(n,s,t);
 10   for i:=1 to n do
 11     readln(xk[i],yk[i]);
 12 end;
 13
 14 procedure qsort1(l,r:longint);
 15 var
 16   i,j,mid1,mid2,tk:longint;
 17 begin
 18   if l>r then exit;
 19   i:=l; j:=r;
 20   mid1:=yk[(l+r) div 2];
 21   mid2:=xk[(l+r) div 2];
 22   repeat
 23     while (yk[i]<mid1) or (yk[i]=mid1) and (xk[i]>mid2) do inc(i);
 24     while (yk[j]>mid1) or (yk[j]=mid1) and (xk[j]<mid2) do dec(j);
 25     if i<=j then
 26       begin
 27         tk:=xk[i]; xk[i]:=xk[j]; xk[j]:=tk;
 28         tk:=yk[i]; yk[i]:=yk[j]; yk[j]:=tk;
 29         inc(i); dec(j);
 30       end;
 31   until i>j;
 32   qsort1(i,r);
 33   qsort1(l,j);
 34 end;
 35
 36 procedure qsort2(l,r:longint);
 37 var
 38   i,j,mid1,mid2,tk:longint;
 39 begin
 40   if l>r then exit;
 41   i:=l; j:=r;
 42   mid1:=xk[(l+r) div 2];
 43   mid2:=yk[(l+r) div 2];
 44   repeat
 45     while (xk[i]>mid1) or (xk[i]=mid1) and (yk[i]>mid2) do inc(i);
 46     while (xk[j]<mid1) or (xk[j]=mid1) and (yk[j]<mid2) do dec(j);
 47     if i<=j then
 48       begin
 49         tk:=xk[i]; xk[i]:=xk[j]; xk[j]:=tk;
 50         tk:=yk[i]; yk[i]:=yk[j]; yk[j]:=tk;
 51         inc(i); dec(j);
 52       end;
 53   until i>j;
 54   qsort2(i,r);
 55   qsort2(l,j);
 56 end;
 57
 58 procedure qsort3(l,r:longint);
 59 var
 60   i,j,mid1,mid2,tk:longint;
 61 begin
 62   if l>r then exit;
 63   i:=l; j:=r;
 64   mid1:=b[(l+r) div 2];
 65   mid2:=a[(l+r) div 2];
 66   repeat
 67     while (b[i]>mid1) or (b[i]=mid1) and (a[i]>mid2) do inc(i);
 68     while (b[j]<mid1) or (b[j]=mid1) and (a[j]<mid2) do dec(j);
 69     if i<=j then
 70       begin
 71         tk:=a[i]; a[i]:=a[j]; a[j]:=tk;
 72         tk:=b[i]; b[i]:=b[j]; b[j]:=tk;
 73         inc(i); dec(j);
 74       end;
 75   until i>j;
 76   qsort3(i,r);
 77   qsort3(l,j);
 78 end;
 79
 80 procedure main;
 81 var
 82   i,num,min,tk:longint;
 83 begin
 84   ansx:=0; ansy:=0; num:=0;
 85   qsort1(1,n);
 86   for i:=1 to s-t do
 87     begin
 88       inc(num);
 89       a[num]:=xk[i]; b[num]:=yk[i];
 90     end;
 91   qsort2(s-t+1,n);
 92   min:=maxlongint;
 93   for i:=s-t+1 to s do
 94     begin
 95       ansx:=ansx+xk[i];
 96       ansy:=ansy+yk[i];
 97       if yk[i]<min then min:=yk[i];
 98     end;
 99   for i:=s+1 to n do
100     begin
101       inc(num);
102       a[num]:=xk[i]; b[num]:=yk[i];
103     end;
104   qsort3(1,num);
105   tk:=0;
106   for i:=1 to num do
107     if b[i]<=min then
108       begin
109         inc(tk);
110         ansx:=ansx+a[i];
111         ansy:=ansy+b[i];
112         if tk=s-t then break;
113       end;
114   writeln(ansx,' ',ansy);
115 end;
116
117 begin
118   init;
119   main;
120 end.

JZOJ_100029. 【NOIP2017提高A组模拟7.8】陪审团 (Standard IO)相关推荐

  1. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  2. JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation

    Description Input Output Sample Input 7 2 2343223 4 1 2234 Sample Output 2243233 2334 Data Constrain ...

  3. JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题

    Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3 ...

  4. JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异

    Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...

  5. JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度

    Description Input Output Sample Input Sample1: 3 1 2 3 Sample2: 9 1 3 2 4 8 6 9 5 7 Sample Output Sa ...

  6. JZOJ 100030. 【NOIP2017提高A组模拟7.8】为了爱情

    Description Input 输入文件第一行包含一个正整数 k.之后是 k 组测试用例. 每组测试用例的第一行为一个整数 n.接下来 n 行,每行 n 个以空格隔开的数,用来 描述棋盘的初始状态 ...

  7. JZOJ 100026. 【NOIP2017提高A组模拟7.7】图

    Description 有一个n个点n条边的有向图,每条边为< i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi. si:由i出发 ...

  8. 【NOIP2017提高A组模拟9.5】 NYG的背包

    题目描述 N Y G NYG NYG有一个神奇的背包,每放进去一个物品,背包的体积就会变大. 也就是说,每放进一个物品,背包会被占用一定的体积,但是紧接着背包的总体积又会增大一定的值(注意是在放入物品 ...

  9. 【NOIP2017提高A组模拟10.7】Confess

    Description: 小w 隐藏的心绪已经难以再隐藏下去了. 小w 有n + 1(保证n 为偶数) 个心绪,每个都包含了[1,2n] 的一个大小为n 的子集. 现在他要找到隐藏的任意两个心绪,使得 ...

最新文章

  1. desc excel 公式_Excel小技巧之Power Pivot Generate函数、高级DAX函数与常用筛选器函数...
  2. 外网win10 64位环境下 为内网win7 32位安装三方包的最靠谱手段:python64位、32位全安装。...
  3. 白嫖我常用的 11 个超火的前端必备在线工具,终于有时间上班摸鱼了
  4. 【Python】蒙特卡罗方法计算圆周率及给定随机数种子
  5. input和img图片水平对齐
  6. Android之封装支付宝支付
  7. 这就是搜索引擎--读书笔记五--索引的建立与更新
  8. “王炸”来了?苹果下一代Mac Pro将搭载两颗M1 Ultra芯片
  9. centos telnet提示No route to host
  10. 使用Windows 7 管理Windows 2008 R2
  11. Spring源码之事务(一)
  12. 用pywinhook或pyhook监听鼠标事件
  13. linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
  14. OLED(1)与LDC区别
  15. html点击弹出文本框,html制作,点击文字超链接显示文本框,再点击文字超链接隐藏文本框...
  16. 新买电脑如何做到长时间不卡顿
  17. 数据库原理及应用(MySQL版)MySQL实验指导参考答案(实验一到实验八)
  18. 再谈异常处理try-catch-finally
  19. CSS布局与定位,flow流,float
  20. Java密码学原型算法实现——第二部分:单钥加密算法

热门文章

  1. 50个最好的firefox扩展让你尽情冲浪
  2. cmake基础教程(11)add_subdirectory如何添加非子目录的CMakeLists.txt
  3. 蒋涛对话王成录:哪怕退休了我都想在中国把 HarmonyOS 做成
  4. 哪里查看计算机最近打开的文档,W7电脑系统中如何查看最近打开过的文档项目...
  5. MFC学习笔记 — 看小白如何实现音乐播放器(USB-HID 声卡 wav播放)
  6. 钙钛矿Cs2AgBiBr6|三氟乙胺碘F3EAI|4-三氟甲基苯胺溴CF3PhABr
  7. 概念建模(CDM)-------数据建模(一)
  8. spd耗材管理流程图_医用耗材SPD管理模式详解
  9. 读古诗系列--王维·酌酒与裴迪
  10. MAX40026 280ps高速比较器开发资料原理图源代码