Codeforces Round 965 (Div. 2)

        

#include <iostream>
using namespace std;

// 声明全局变量
int t; // 测试用例的数量
int x, y, k; // 中心点的坐标和需要输出的点的数量

int main() {
    cin >> t; // 读取测试用例的数量
    while (t--) { // 遍历每个测试用例
        cin >> x >> y >> k; // 读取每个测试用例的中心坐标 (x, y) 和点的数量 k

        // 根据 k 生成 k 个不同的点
        for (int i = 1; i <= k / 2; i++) {
            // 输出坐标为 (x + i, y) 和 (x - i, y) 的点
            cout << x + i << " " << y << endl;
            cout << x - i << " " << y << endl;
        }

        // 如果 k 是奇数,输出中心点 (x, y)
        if (k % 2) {
            cout << x << " " << y << endl;
        }
    }

    return 0; // 程序结束
}

逐个测试用例解释

  1. 第一个测试用例10 10 1

    • 中心点是 (10, 10),需要输出 1 个点。
    • 由于只有一个点,直接输出中心点 (10, 10)
  2. 第二个测试用例0 0 3

    • 中心点是 (0, 0),需要输出 3 个点。
    • k 是奇数,所以生成 k/2 = 1 对点,以及中心点。
    • 输出点:
      • (0 + 1, 0) = (1, 0)
      • (0 - 1, 0) = (-1, 0)
      • 中心点 (0, 0)
  3. 第三个测试用例-5 -8 8

    • 中心点是 (-5, -8),需要输出 8 个点。
    • k 是偶数,生成 k/2 = 4 对点。
    • 输出点:
      • (-5 + 1, -8) = (-4, -8)
      • (-5 - 1, -8) = (-6, -8)
      • (-5 + 2, -8) = (-3, -8)
      • (-5 - 2, -8) = (-7, -8)
      • (-5 + 3, -8) = (-2, -8)
      • (-5 - 3, -8) = (-8, -8)
      • (-5 + 4, -8) = (-1, -8)
      • (-5 - 4, -8) = (-9, -8)
  4. 第四个测试用例4 -5 3

    • 中心点是 (4, -5),需要输出 3 个点。
    • k 是奇数,所以生成 k/2 = 1 对点,以及中心点。
    • 输出点:
      • (4 + 1, -5) = (5, -5)
      • (4 - 1, -5) = (3, -5)
      • 中心点 (4, -5)

总结

  • 代码通过生成对称的点对和处理奇数点的情况来满足题目要求。
  • 每个测试用例输出的点总是围绕给定的中心点生成,符合题目规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值