csuoj-1900 锋芒毕露
Description
小闪最近迷上了二刀流——不过他耍的其实是剑——新买了一个宝库用来专门存放自己收集的双剑。一对剑有两把,分只能左手用的和只能右手用的,各自有一个攻击力数值。虽然一对剑在小闪刚拿到时是一对,不过其实可以认为它们是独立的两把剑。一对剑的攻击力是左右两把剑的攻击力之和,小闪可以自由地搭配左右剑来练习二刀流。每次小闪得到一对新的双剑,他都可以去更新一次自己的双剑宝库,重新给每把剑配对。 小闪需要自己给每一把剑配对,然后他的智能宝库会提供宝库中攻击力最高的一对剑来给小闪练习;不过小闪其实是一个很低调的人,不喜欢锋芒毕露,希望自己练习时的双剑攻击力尽可能小——虽然不知道怎么改变宝库,但是他可以改变双剑的搭配。每次新得到一对剑,更新完宝库之后,小闪练习时用的剑可能就会发生变化。 请你求出每次更新宝库后小闪练习二刀流时的双剑攻击力。
Input
输入包含不超过10组数据。 对于每组数据,第一行一个整数N(1<=N<=100000),表示小闪前后共收集到了N对双剑;接下来N行,每行包含两个整数A和B(1<=A,B<=100),分别表示每次小闪收集到的一对剑的左手用剑和右手用剑的攻击力数值。 每组数据之后会有一个空行。 输入以一行一个整数0结束。
Output
对于每组数据,输出N行,每行一个整数,表示每次更新后小闪练习二刀流时的双剑攻击力值。 相邻两组数据之间输出一个空行。
Sample Input
3
2 8
3 1
1 4 3
1 1
2 2
3 3 0
Sample Output
10
10
9 2
3
4
就是最大值加最小值(堆排序)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int n,a[N],b[N];
int main()
{
int x,y;
int flag=;
while(~scanf("%d",&n)&&n)
{
if(flag) printf("\n");
flag=;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=; i<n; i++)
{
scanf("%d%d",&x,&y);
a[x]++;
b[y]++;
int l=,r=;
int ans=-;
int cntl=a[l],cntr=b[r];
while(l<=&&r>=)
{
if(cntl&&cntr)
{
ans=max(ans,l+r);
}
if(cntl==cntr)
{
l++;
r--;
cntl=a[l];
cntr=b[r];
continue;
}
if(cntl<cntr)
{
l++;
cntr-=cntl;
cntl=a[l];
}
else if(cntr<cntl)
{
r--;
cntl-=cntr;
cntr=b[r];
}
}
printf("%d\n",ans);
}
}
return ;
}
csuoj-1900 锋芒毕露的更多相关文章
- CSUOJ 1900 锋芒不露
Description 小闪最近迷上了二刀流--不过他耍的其实是剑--新买了一个宝库用来专门存放自己收集的双剑.一对剑有两把,分只能左手用的和只能右手用的,各自有一个攻击力数值.虽然一对剑在小闪刚拿到 ...
- 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 1.1900年1月1号开始 * 2.星期 : 直接用总天数对7求余数 31 28 59 / 7 = 5 * 3.以\t来个开
public class Demo4 { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- csuoj 1511: 残缺的棋盘
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511 1511: 残缺的棋盘 时间限制: 1 Sec 内存限制: 128 MB 题目描述 输入 ...
- 1900. Brainwashing Device
http://acm.timus.ru/problem.aspx?space=1&num=1900 题目大意: 有N个车站,相邻车站之间形成一个段,这样就有N-1个段,每个段最多可以放一个洗脑 ...
- SQLServer公历转农历函数(1900年-2049年)
ALTER FUNCTION [dbo].[f_SysGetLunar]( @solarDay DATETIME) RETURNS varchar(20 ...
- csuoj 1354: Distinct Subsequences
这个题是计算不同子序列的和: spoj上的那个同名的题是计算不同子序列的个数: 其实都差不多: 计算不同子序列的个数使用dp的思想: 从头往后扫一遍 如果当前的元素在以前没有出现过,那么dp[i]=d ...
- 上证A股股指跌破1900
上证A股股指跌破1900 有钱的同学赶紧买哦,机会难得哈哈!
- 北京出dell s2740显示器 1900 - V2EX
水木社区归档站 北京出dell s2740显示器 1900 - V2EX 北京出dell s2740显示器 1900 By kekex · 6 小时 6 分钟前 · 188 次点击 购于今年4月份 镜 ...
- 1900型USB接口扫描枪设置虚拟串口模式提升扫描速度
在使用扫描枪的过程中,发现扫描二维码速度比较慢,不到100个字符,花了大概2-3秒的时间才完成显示,这个速度不能忍受啊.通过度娘,说是可以将USB键盘模式接收字符转换成虚拟串口接收,这样可以大大提高速 ...
- 自己设计一个日期类,可以输入年月日作为构造时的参数,如果不使用参数,则设定为1900年1月1日;编写一个方法equals判断两个日期是否相等;另一个方法compareTo可以进行日期之间的比较,返回两个日期之间相差的天数.
import java.util.*; import java.lang.Math; class Date1{ private int year; private int month; private ...
随机推荐
- webpack 打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)
如今,webpack 毫无疑问是前端构建领域里最耀眼的一颗星,无论你前端走哪条路线,都需要有很强的webpack 知识.webpack 的基本用法这里就不展开讲了.主要探讨一下如何提高 webpack ...
- MySQL数据库之MyISAM与InnoDB的区别
MySQL数据库之MyISAM与InnoDB的区别 从以下几个方面: 1.存储结构 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义 ...
- 【SQL】安装后设置 sa账号登录
1.windows身份验证登录管理员账户 2.找到sa账号双击 3.设置密码,启用 4.右键 属性 安全性 5.重启服务,sa账号登录 本地服务用 . 6.登录成功:
- ArcGIS API For Javascript :如何动态生成 token 加载权限分配的地图服务?
一.需求 项目中我们通常会遇到为外协团队.合作友商提供地图服务的需求,因此对地图服务的权限需要做出分配. 二.现状 主流的办法是用用户和角色来控制,通常使用代理方式和用户名密码的方式来实现. 三.思路 ...
- 初识JVM内存模型
计算机内存模型 在程序运行时,CPU通过访问主存获取数据,但随着CPU的快速发展,CPU访问速度越来越高,硬件无法满足CPU的条件下,大多内存加入了高速缓存机制,不同CPU都有对应的多级(一般为三)缓 ...
- 关于IP网段划分
IP地址分类(A类 B类 C类 D类 E类) IP地址由四段组成,每个字段是一个字节,8位,最大值是255,, IP地址由两部分组成,即网络地址和主机地址.网络地址表示其属于互联网的哪一个网络 ...
- python_day05
今日内容 ''' post请求登录github Request URL: https://github.com/session Request Method: POST #Referer表示上一个请求 ...
- 性能测试专题:Locust工具实战之“蝗虫”降世
阅读全文需5分钟. 1. 前言 在上一篇文章中,我们已经为大家介绍了什么是Locust,具体可参照:性能专题:Locust工具实战之开篇哲学三问,简单来说,Locust 是基于 Python 语言下的 ...
- Nmap强大在哪之主机发现
1.概述 博主前段时间刚入坑渗透测试,随着学习的深入,越来越发现Nmap简直无所不能.今天先从主机发现功能入手分析. 2.Nmap主机发现 nmap --help #nmap帮助 3.参数分析 3.1 ...
- Three.js - 走进3D的奇妙世界
本文将通过Three.js的介绍及示例带我们走进3D的奇妙世界. 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第6期-支付结算部支付研发团队前端研发高级工程师-刘琳<three. ...