Wet Shark and Bishops
来源:互联网 发布:淘宝女装店招图片 编辑:程序博客网 时间:2024/06/05 00:19
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
Today, Wet Shark is given n bishops on a 1000 by 1000 grid. Both rows and columns of the grid are numbered from 1 to 1000. Rows are numbered from top to bottom, while columns are numbered from left to right.
Wet Shark thinks that two bishops attack each other if they share the same diagonal. Note, that this is the only criteria, so two bishops may attack each other (according to Wet Shark) even if there is another bishop located between them. Now Wet Shark wants to count the number of pairs of bishops that attack each other.
Input
The first line of the input containsn (1 ≤ n ≤ 200 000) — the number of bishops.
Each of next n lines contains two space separated integers xi and yi (1 ≤ xi, yi ≤ 1000) — the number of row and the number of column wherei-th bishop is positioned. It's guaranteed that no two bishops share the same position.
Output
Output one integer — the number of pairs of bishops which attack each other.
Sample Input
51 11 53 35 15 5
6
31 12 33 5
0
Sample Output
Hint
In the first sample following pairs of bishops attack each other:(1, 3),(1, 5), (2, 3), (2, 4), (3, 4) and(3, 5). Pairs(1, 2),(1, 4), (2, 5) and (4, 5) do not attack each other because they do not share the same diagonal.
题意:一个1000*1000的棋盘,给你N个点的坐标,问有多少对点在对角线上。
思路:找出对角线上有多少点,再求C(n,2)即可。
规律:斜向右下的一条|x-y|都相等,斜向左下的一条x+y都相等,求出线上个数。注:相同结果存入一个a[i],个数为a[i]++,
代码如下:
#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int a[2100],b[2100];int main() { int x,y,n; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); long long ans=0; for(int i=1;i<=n;i++) { scanf("%d%d",&x,&y); a[x-y+1000]++; b[x+y]++; } for(int i=1;i<=2000;i++) { if(a[i]!=0) { ans+=a[i]*(a[i]-1)/2; } if(b[i]!=0) { ans+=b[i]*(b[i]-1)/2; } } printf("%lld\n",ans); } return 0;}
- Wet Shark and Bishops
- Wet Shark and Bishops
- Wet Shark and Bishops
- codeforces621B. Wet Shark and Bishops
- CF621B - Wet Shark and Bishops
- B. Wet Shark and Bishops
- (思维)Wet Shark and Bishops
- codeforce 621B Wet Shark and Bishops
- codeforce 621 B. Wet Shark and Bishops
- CodeForces 621 B Wet Shark and Bishops
- 【codeforces】#621B-Wet Shark and Bishops
- 【CodeForces】[621B]Wet Shark and Bishops
- 【CodeForces】#621B - Wet Shark and Bishops
- CodeForces 621B Wet Shark and Bishops
- CodeForces 621B Wet Shark and Bishops
- Codeforces 621B Wet Shark and Bishops
- Wet Shark and Bishops(思维)
- *Wet Shark and Bishops(思维) CodeForces
- Android群英转读书笔记第五章(Android Scroll分析)
- Android开发之AutoCompleteTextView控件,自动提示
- C/C++程序员必须熟练应用的开源项目
- Hibernate中的Entity类之间的OneToOne关联
- table消除 td 之间的间距
- Wet Shark and Bishops
- iOS中JavaScript和OC交互
- html5调用摄像头实现拍照并本地保存
- 关于Hibernate Could not obtain transaction-synchronized Session for current thread
- 关于高并发 悲观锁 乐观锁
- Google I/O:Android ConstraintLayout 扁平化布局入门 andstudio 2.2
- C语言实例代码
- 用android studio提交代码
- 数组引用:C++ 数组做参数 深入分析