#563. 坐标变换(其一)

    ID: 563 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 入门 上传者: 标签>CCF CSP认证第 31 次CCF CSP软件能力认证基础算法模拟

坐标变换(其一)

问题描述

对于平面直角坐标系上的坐标 (x,y)(x,y),小 PP 定义了一个包含 nn 个操作的序列 T=(t1,t2,…,tn)T=(t_1,t_2,\dots,t_n)。 其中每个操作 tit_i(1≤i≤n1\le i\le n)包含两个参数 dxidx_i 和 dyidy_i,表示将坐标 (x,y)(x,y) 平移至 (x+dxi,  y+dyi)(x+dx_i,\;y+dy_i)。

现给定 mm 个初始坐标,要求对每个坐标 (xj,yj)(x_j,y_j)(1≤j≤m1\le j\le m)依次执行序列 TT 中的所有 nn 个操作,输出最终的坐标位置。

输入格式

共 n+m+1n+m+1 行:

第一行包含两个正整数 nn 和 mm,分别表示操作数和初始坐标个数。(1≤n,m≤1001 \le n, m \le 100)。 接下来 nn 行,第 ii 行包含两个整数 dxidx_i,dyidy_i,表示第 ii 个操作的平移向量。(−105≤dxi,dyi≤105-10^5 \le dx_i, dy_i \le 10^5) 再接下来 mm 行,第 jj 行包含两个整数 xjx_j,yjy_j,表示第 jj 个初始坐标。(−105≤xj,yj≤105-10^5 \le x_j, y_j \le 10^5)

输出格式

输出共 mm 行,第 jj 行包含两个整数,表示初始坐标 (xj,yj)(x_j,y_j) 经过 nn 个操作后的最终坐标(用空格分隔)。

输入样例

3 2
10 10
0 0
10 -20
1 -1
0 0

输出样例

21 -11
20 -10

说明

样例解释

  • 对第一个初始坐标 (1,−1)(1,-1):按顺序平移 (+10,+10)→(11,9)(+10,+10)\to(11,9),(+0,+0)→(11,9)(+0,+0)\to(11,9),(+10,−20)→(21,−11)(+10,-20)\to(21,-11)。
  • 对第二个初始坐标 (0,0)(0,0):依次得到 (10,10)(10,10)、(10,10)(10,10)、(20,−10)(20,-10)。