程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> SGU - 133 - Border (簡單統計)

SGU - 133 - Border (簡單統計)

編輯:C++入門知識

SGU - 133 - Border (簡單統計)


133. Border

time limit per test: 0.25 sec.
memory limit per test: 4096 KB

Along the border between states A and B there are N defence outposts. For every outpost k, the interval [Ak,Bk] which is guarded by it is known. Because of financial reasons, the president of country A decided that some of the outposts should be abandoned. In fact, all the redundant outposts will be abandoned. An outpost i is redundant if there exists some outpost j such that Aji and Bij. Your task is to find the number of redundant outposts.

Input

The first line of the input will contain the integer number N (1<=N<=16 000). N lines will follow, each of them containing 2 integers: Ak and Bk (0<= Ak < Bk <= 2 000 000 000), separated by blanks. All the numbers Ak will be different. All the numbers Bk will be different.

Output

You should print the number of redundant outposts.

Sample Input

5
0 10
2 9
3 8
1 15
6 11

Sample Output

3

Author : Mugurel Ionut Andreica Resource : SSU::Online Contester Fall Contest #2 Date : Fall 2002







思路:將整數對按照第一個值升序排列,然後往後遍歷,每次的第二個值如果比之前的第二個值中的最大值小,則ans++,注意不要加EOF,會PE


AC代碼:

#include 
#include 
#include 
#include 
using namespace std;

struct node {
	int x, y;
}a[16005];

int N;

bool cmp(node a, node b) {
	return a.x < b.x;
}

int main() {
	scanf("%d", &N);
	for(int i = 0; i < N; i++) {
	scanf("%d %d", &a[i].x, &a[i].y);
	}
	sort(a, a + N, cmp);
	
	int ans = 0;
	int MAX = a[0].y;
	for(int i = 1; i < N; i++) {
		if(a[i].y < MAX) ans ++;
		else MAX = a[i].y;
	}
	
	printf("%d\n", ans);
	return 0;
}







  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved