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

Hint

开始看到这题,sort一下把最大和最小加起来判断一下,结果TLE
然后在输入的时候判断最大最小,TLE
仔细想了想就算不TLE还是会wa
然后看到剑的能量最大就100,就想到用数组记录各能量的剑的个数,输入时不断更新就可以了

#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int l[105], r[105];
int main()
{
int T,a,b;
while (~scanf("%d", &T))
{
if (!T)
break;
memset(l, 0, sizeof(l));
memset(r, 0, sizeof(r));
int maxx=100,minn=0;
for (int i = 1; i <= T; i++)
{
scanf("%d%d", &a, &b);
l[a]++, r[b]++;
if (maxx>a)maxx = a;
if (minn < b)minn = b;
int m = maxx, n = minn,ma=0;
int p = l[maxx], q = r[minn];
int cnt = 0;
while (cnt != i)
{
if (p == 0)
{
p = l[++m];
continue;
}
if (q == 0)
{
q = r[--n];
continue;
}
if (m + n > ma)ma = m + n;
if (p == q)
{
cnt += p; m++; n--;
p = l[m]; q = r[n];
}
else if (p < q)
{
q -= p;
cnt += p;
p = l[++m];
}
else if (p>q)
{
p -= q;
cnt += q;
q = r[--n];
}
}
printf("%d\n", ma);
}
printf("\n");
}
}
/**********************************************************************
Problem: 1900
User: leo6033
Language: C++
Result: AC
Time:444 ms
Memory:2024 kb
**********************************************************************/

CSUOJ 1900 锋芒不露的更多相关文章

  1. 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 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 ...

  2. csuoj 1511: 残缺的棋盘

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511 1511: 残缺的棋盘 时间限制: 1 Sec  内存限制: 128 MB 题目描述 输入 ...

  3. 1900. Brainwashing Device

    http://acm.timus.ru/problem.aspx?space=1&num=1900 题目大意: 有N个车站,相邻车站之间形成一个段,这样就有N-1个段,每个段最多可以放一个洗脑 ...

  4. SQLServer公历转农历函数(1900年-2049年)

    ALTER   FUNCTION   [dbo].[f_SysGetLunar](      @solarDay   DATETIME)            RETURNS   varchar(20 ...

  5. csuoj 1354: Distinct Subsequences

    这个题是计算不同子序列的和: spoj上的那个同名的题是计算不同子序列的个数: 其实都差不多: 计算不同子序列的个数使用dp的思想: 从头往后扫一遍 如果当前的元素在以前没有出现过,那么dp[i]=d ...

  6. 上证A股股指跌破1900

    上证A股股指跌破1900 有钱的同学赶紧买哦,机会难得哈哈!

  7. 北京出dell s2740显示器 1900 - V2EX

    水木社区归档站 北京出dell s2740显示器 1900 - V2EX 北京出dell s2740显示器 1900 By kekex · 6 小时 6 分钟前 · 188 次点击 购于今年4月份 镜 ...

  8. 1900型USB接口扫描枪设置虚拟串口模式提升扫描速度

    在使用扫描枪的过程中,发现扫描二维码速度比较慢,不到100个字符,花了大概2-3秒的时间才完成显示,这个速度不能忍受啊.通过度娘,说是可以将USB键盘模式接收字符转换成虚拟串口接收,这样可以大大提高速 ...

  9. 自己设计一个日期类,可以输入年月日作为构造时的参数,如果不使用参数,则设定为1900年1月1日;编写一个方法equals判断两个日期是否相等;另一个方法compareTo可以进行日期之间的比较,返回两个日期之间相差的天数.

    import java.util.*; import java.lang.Math; class Date1{ private int year; private int month; private ...

随机推荐

  1. 20155316 2016-2017-2 《Java程序设计》第7周学习总结

    教材学习内容总结 1. 时间与日期 1.1 时间的度量 GMT -> UT -> TAI -> UTC 英文 缩写 Greenwich Mean Time GMT Universal ...

  2. Java内存模型简析

    1.多线程基础 线程通信,是指线程之间以何种机制来交换信息.其中通信的机制有两种:内存共享和消息传递.内存共享是指线程之间通过写-读内存中的公共状态隐式进行通讯(Java):消息传递在线程之间没有公共 ...

  3. Spring Aop、拦截器、过滤器的区别

    Filter过滤器:拦截web访问url地址.Interceptor拦截器:拦截以 .action结尾的url,拦截Action的访问.Spring AOP拦截器:只能拦截Spring管理Bean的访 ...

  4. 【leetcode 简单】 第六十题 反转链表

    反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...

  5. nc使用笔记

    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它. 现内网中有两台机器:Mac: 192.168.1.109 Ka ...

  6. 关于Unix/Linux的终端、伪终端、控制台和shell

    历史是什么:是过去传到将来的回声,是将来对过去的反映. ——雨果(法)<笑面人> 阅读本文大概需要花费你15分钟 文章导航: 计算机的发展 UNIX系统的诞生 UNIX系统的发展 终端与控 ...

  7. 查看Oracle数据库中的所有用户名

    select username from dba_users"

  8. 使用python开发一个能够计算带括号的复杂表达式的计算器(只支持加减乘除)

    使用到了模块re,正则,字典等 # 实现简单的加减乘除括号等运算 # Calculator def calculator(expression): print(expression) import r ...

  9. 使用mysql的SUBSTRING_INDEX函数解决项目中编码非重复问题的实现方案!

    一 SUBSTRING_INDEX函数介绍 作用:按关键字截取字符串 substring_index(str,delim,count) 说明:substring_index(被截取字段,关键字,关键字 ...

  10. flask基础之app初始化(四)

    前言 flask的核心对象是Flask,它定义了flask框架对于http请求的整个处理逻辑.随着服务器被启动,app被创建并初始化,那么具体的过程是这样的呢? 系列文章 flask基础之安装和使用入 ...