CF->CodeForces 137C
来源:互联网 发布:js 数组去掉最后一个 编辑:程序博客网 时间:2024/05/01 21:49
Description
Polycarpus likes studying at school a lot and he is always diligent about his homework. Polycarpus has never had any problems with natural sciences as his great-great-grandfather was the great physicist Seinstein. On the other hand though, Polycarpus has never had an easy time with history.
Everybody knows that the World history encompasses exactly n events: the i-th event had continued from the year ai to the year biinclusive (ai < bi). Polycarpus easily learned the dates when each of n events started and ended (Polycarpus inherited excellent memory from his great-great-granddad). But the teacher gave him a more complicated task: Polycaprus should know when all events began and ended and he should also find out for each event whether it includes another event. Polycarpus' teacher thinks that an event j includes an event i if aj < ai and bi < bj. Your task is simpler: find the number of events that are included in some other event.
Input
The first input line contains integer n (1 ≤ n ≤ 105) which represents the number of events. Next n lines contain descriptions of the historical events, one event per line. The i + 1 line contains two integers ai and bi (1 ≤ ai < bi ≤ 109) — the beginning and the end of the i-th event. No two events start or finish in the same year, that is, ai ≠ aj, ai ≠ bj, bi ≠ aj, bi ≠ bj for all i, j (where i ≠ j). Events are given in arbitrary order.
Output
Print the only integer — the answer to the problem.
Sample Input
51 102 93 84 75 6
4
51 1002 5051 9952 9810 60
4
11 1000000000
0
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct Events{ int b; int e;}events[100001];bool cmp(Events a, Events b){ return a.b < b.b;}int main(){ int t; cin >> t; for (int i = 0; i < t; i++) { scanf("%d %d", &events[i].b, &events[i].e); } sort(events, events + t, cmp); int maxn = events[0].e, num = 0; for (int i = 1; i < t; i++) { if (events[i].e < maxn) { num++; } else { maxn = events[i].e; } } cout << num << endl; return 0;}
Hint
In the first example the fifth event is contained in the fourth. Similarly, the fourth event is contained in the third, the third — in the second and the second — in the first.
In the second example all events except the first one are contained in the first.
In the third example only one event, so the answer is 0.
- CF->CodeForces 137C
- CF->CodeForces 137A
- CF->CodeForces 137B
- 【Codeforces】 CF 520C DNA Alignment
- cf Educational Codeforces Round 25 C
- CF Educational Codeforces Round 15(C)
- CF——Codeforces 891 C Envy
- cf CodeForces
- cf Educational Codeforces Round 6 C Pearls in a Row
- CF-Codeforces Round #410 (Div. 2)-A~C
- CF-Codeforces Round #420 (Div. 2)-C-Okabe and Boxes
- cf Educational Codeforces Round 26 C. Two Seals
- CF——Codeforces Round #428 (Div. 2)C. Journey
- cf Educational Codeforces Round 25 C. Multi-judge Solving
- codeforces 练习 ---- CF 24
- CF->CodeForces 256A
- CF Codeforces 52C 简单的线段树 成段更新
- 【打CF,学算法——三星级】Codeforces Round #313 (Div. 2) C. Gerald's Hexagon
- Global.asax 文件是什么
- 关于一道简单的智力题
- CF->CodeForces 137B
- C++快速学习之旅——C++和java的编译区别
- hdu 4055 2011 Asia Dalian Regional Contest
- CF->CodeForces 137C
- cocos2dx搭建android环境记录
- java泛型详解
- 黑马程序员_<<享元模式>>
- fatal error C1859 意外的预编译头错误,只需重新运行编译器
- CF->CodeForces 256A
- c 与 c++ 的区别
- 有关网线
- 软件版本命名规则