时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Ho在玩一款类似俄罗斯方块的游戏。与原版俄罗斯方块不同的是,落下方块都是长度不一的横向长条,并且不能移动也不能变成竖直方向。

XXXXXX  <- 长度为6的横向长条。

第i个长条的最左端的格子坐标是Li,最右端的格子坐标是Ri;长条从很高的位置下落,中途遇到地面或者受到之前长条支撑,就会停在当前高度。

你能计算出每个长条最后停留的高度是多少吗? 直接停在地面上的长条高度视为1。

例如5个长条依次下落的位置是[10, 15], [7, 12], [12, 19], [1, 4], [1, 7],则每个长条最终停留的位置如下图所示:

5555555    33333333
222222
4444 111111

输入

第一行包含一个整数N。

以下N行每行包含两个整数Li, Ri。

对于30%的数据,1 ≤ N ≤ 1000, 1 ≤ Li ≤ Ri ≤ 1000

对于100%的数据, 1 ≤ N ≤ 100000, 1 ≤ Li ≤ Ri ≤ 100000

输出

输出N行,每行包含一個整数,代表第i个长条停留的高度。

样例输入
5
10 15
7 12
12 19
1 4
1 7
样例输出
1
2
3
1
3
#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=;
int N,L,R,x,y,z;
struct Segment_Tree{
int maxx;
int tag;
}T[maxn<<];
void upd(int L,int R,int root){
if(x>R||y<L)return;
if(x<=L&&y>=R){ T[root].maxx=z; T[root].tag=z;return;}
int mid=(L+R)>>;
if(T[root].tag) T[root<<].maxx=T[root<<|].maxx=T[root<<].tag=T[root<<|].tag=T[root].tag,T[root].tag=;
upd(L,mid,root<<);
upd(mid+,R,root<<|);
T[root].maxx=max(T[root<<].maxx,T[root<<|].maxx);
}
int query(int L,int R,int root){
if(x>R||y<L) return ;
if(x<=L&&y>=R) return T[root].maxx;
int mid=(L+R)>>;
if(T[root].tag) T[root<<].maxx=T[root<<|].maxx=T[root<<].tag=T[root<<|].tag=T[root].tag,T[root].tag=;
return max(query(L,mid,root<<),query(mid+,R,root<<|));
}
int main(){
scanf("%d",&N);
for(int i=;i<=N;i++){
scanf("%d%d",&x,&y);
int temp=query(,,);
z=temp+;
printf("%d\n",z);
upd(,,);
}
return ;
}

最新文章

  1. BranchCache在sharepoint2013使用
  2. php字符串操作集锦
  3. 从 HTTP 到 HTTPS - IIS 部署免费 HTTPS
  4. js获取元素的innerText属性为什么为空
  5. python模块调用
  6. echo 和 cat 的 区别
  7. Pongo建立信号基站-实际上还是考中位数
  8. 我的Myeclipse黑色主题
  9. HDU 5802 Windows 10 (贪心+dfs)
  10. PHP5 session 详解
  11. Java内存结构、类的初始化、及对象构造过程
  12. 安卓接入ShareSDK问题
  13. Ajax.BeginForm返回方法OnSuccess
  14. sudo: unable to resolve host XXX 解决方法
  15. -_-#【缓存】Content-Type 错误
  16. 使用apache反向代理tomacat
  17. C++ enum用法小技巧
  18. Unity 捏脸整理及基于骨骼的捏脸功能实现
  19. hdu1242 DFS基础(回溯的重要性)
  20. 翻译:man getopt(1)中文手册

热门文章

  1. local variable &#39;xxx&#39; referenced before assignment(犯过同样的错)
  2. HDOJ 3473 Minimum Sum
  3. 跟我一起用Symfony写一个博客网站;
  4. Android Interactive Animation
  5. 纪念下自学QT 第十天 终于写成了串口调试助手
  6. Ionic常见问题
  7. 3.09课&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;for循环
  8. 《Java并发编程的艺术》留给自己以后看的笔记
  9. nova 为何要做互信
  10. AC自动机的一点理解