BZPRO
#1268. [AHOI2006]棋盘上的问题board
内存限制:162 MiB
时间限制:10 Sec
提交
提交记录
讨论
题目描述
可可和卡卡画了一张巨大的N*N的棋盘,他们想在这个棋盘上放尽量多的国际象棋的“車”,使得它们互相不能攻
击到对方(車可以沿着棋盘的横向和纵向攻击)。但这个答案显然就是棋盘的宽度N,于是可可在棋盘上规定了只
有在有限的M个位置上才能放棋子。(其他位置不能放棋子,而車却可以穿过这个位置去攻击其他的棋子)然而这
样也不会难倒两个聪明的小家伙,他们很快算出来这个答案是K。于是卡卡又提出来一个问题:如果我们在这M个可
以放棋子的位置中再去掉一个位置,而仍然保证最多能放下K个車,可行的方案又有多少种呢?
[任务] 编写一个程序:
从输入文件中读入棋盘的大小和棋盘上可以放棋子的位置信息;
计算出如题卡卡所说的可行方案的数目;
输出你得到的答案。
输入格式
第一行有两个正整数N和M,分别表示棋盘的大小和可以放棋子的位置数目。
以下M行,每行用xi和yi两个整数描述一个位置,表示这个位置是棋盘的第xi行第yi列。
同样的一个位置不会被描述两次。
(1<=i<=M, 1<=xi, yi<=N)
1<=N<=200 000, 1<=M<=600 000
输出格式
输出文件中只有一个整数,表示可行方案的数目。
样例
样例输入
3 4
1 2
1 3
2 2
2 1
样例输出
4
数据范围与提示