问题描述
试题编号: | 202309-1 |
试题名称: | 坐标变换(其一) |
时间限制: | 1.0s |
内存限制: | 512.0MB |
问题描述: | 问题描述对于平面直角坐标系上的坐标 (�,�),小 P 定义了一个包含 � 个操作的序列 �=(�1,�2,⋯,��)。其中每个操作 ��(1≤�≤�)包含两个参数 ��� 和 ���,表示将坐标 (�,�) 平移至 (�+���,�+���) 处。 现给定 � 个初始坐标,试计算对每个坐标 (��,��)(1≤�≤�)依次进行 � 中 � 个操作后的最终坐标。 输入格式从标准输入读入数据。 输入共 �+�+1 行。 输入的第一行包含空格分隔的两个正整数 � 和 �,分别表示操作和初始坐标个数。 接下来 � 行依次输入 � 个操作,其中第 �(1≤�≤�)行包含空格分隔的两个整数 ���、���。 接下来 � 行依次输入 � 个坐标,其中第 �(1≤�≤�)行包含空格分隔的两个整数 ��、��。 输出格式输出到标准输出中。 输出共 � 行,其中第 �(1≤�≤�)行包含空格分隔的两个整数,表示初始坐标 (��,��) 经过 � 个操作后的位置。 样例输入 Data 样例输出 |
#include <iostream>
using namespace std;
struct moves{
int x,y;
};
int main(){
int n,m;cin>>n>>m;
moves a[n];
moves b[n];
for (int i = 0; i < n; i++)
{
cin>>a[i].x;
cin>>a[i].y;
}
for (int i = 0; i < m; i++)//m个坐标
{
int x,y;
cin>>x>>y;
for(int j=0;j<n;j++){//n个操作
x+=a[j].x;
y+=a[j].y;
}
cout<<x<<" "<<y<<endl;
}
return 0;
}