~Carlos 2023-07-25 12:56 采纳率: 100%
浏览 28
已结题

无标题123456789

时间:1s 空间:32M

题目描述:
1000 * 1000的网格上有n个大炮,大炮只会斜着45度开炮,方向不定。问你有多少对的大炮可以互相攻击到。

输入格式:
第一行输入一个整数n
接下来n行每行输入两个整数xi,yi,表示大炮的坐标

备注:同一个坐标可能有多个大炮

输出格式:
输出一个整数
样例输入:
5
1 1
1 5
3 3
5 1
5 5
样例输出:
6
约定:
1<=n<=200000,1<=xi,yi<=1000
错误代码:

#include<bits/stdc++.h>
using namespace std;
int cnt, x[100001], y[100001], n, i, j; 
int main() {
    cin >> n;
    for (i = 1; i <= n; i++) {
        cin >> x[i] >> y[i];
        for (j = 1; j <= n; j++) {
            if (x[i] == x[j] || y[i] == y[j]) {
                cnt++;
            }
        }
    }
    
    cout << cnt << endl;
    return 0;
}
  • 写回答

4条回答 默认 最新

  • qzjhjxj 2023-07-25 15:19
    关注

    这么改,供参考:

    #include <iostream>
    //#include<bits/stdc++.h>
    using namespace std;
    int cnt, x[100001], y[100001], n, i, j;
    int main() {
        cin >> n;
        for (i = 0; i < n; i++) {
            cin >> x[i] >> y[i];
            for (j = 0; j < i; j++) {
                if (((x[i] - x[j]) * (x[i] - x[j])) == ((y[i] - y[j]) * (y[i] - y[j]))) {
                    cnt++;
                }
            }
        }
        cout << cnt << endl;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 专家已采纳回答 8月2日
  • 创建了问题 7月25日

悬赏问题

  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?