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. iOS二维码扫描的实现(Swift)

    随着二维码的普遍使用,二维码扫描也成为了很多app的一个基本功能,本篇主要来介绍一下如何实现一个简单的二维码扫描功能.本文使用了XCode自带的AVFoundation 库,利用Swfit语言实现. ...

  2. 天梯赛 L2-002. (模拟) 链表去重

    题目链接 题目描述 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点.即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留.同时,所有被删除的结点必须被保存 ...

  3. GRUB (简体中文)

    原文链接:https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 前言 引导程序是计算机启动时 ...

  4. Linux路径名和文件名最大长度限制

    UNIX标准对路径名和文件名最大长度限制做出了说明,但其上限值在实际应用长过小,Linux在具体实现时提升了该上限,该限制在Linux的 /usr/include/linux/limits.h 中做出 ...

  5. java所搜引擎slor学习笔记(一)

    java搜索引擎有很多,比较熟悉的就是slor和lucene. luncene: 概念:全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置.当用户查 ...

  6. 【算法学习】manacher

    manacher太水了. 这篇blog不能称作算法学习,因为根本没有介绍…… 就贴个模板,太简单了…… #include<cstdio> #include<cstring> # ...

  7. nginx配置浅析

    一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 二.nginx的配置 nginx的 ...

  8. Oracle Certified Java Programmer 经典题目分析(二)

    ...接上篇 what is reserved(保留) words in java? A. run B. default C. implement D. import Java 关键字列表 (依字母排 ...

  9. WindowsServer2003双网卡配置

    今天突然被问起,找资料10+分钟才找到记录,因此再次记录下: route -p delete 0.0.0.0 route -p add 0.0.0.0 mask 0.0.0.0 58.240.115. ...

  10. Web测试技术要领

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否 ...