** C. Inna and Huge Candy Matrix**
题意: 给你一个矩阵询问该矩阵经过某点经过顺时针旋转X次,左右翻转Y次,逆时针旋转Z次,问最终该点的坐标
思路: 此题只需推出几个旋转后坐标的公式就行,但需要注意的是,旋转后有可能行列数会发生变化,行边为列,列变为行,而且记得每次初始化,wa了无数发以上两点
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int n,m,x,y,z,p,px,py;
cin>>n>>m>>x>>y>>z>>p;
int mm=m,nn=n;
x%=4,y%=2,z%=4;
while(p--)
{
m=mm,n=nn;
cin>>px>>py;
int pxx=px,pyy=py;
if(x==1)
{
px=pyy;
py=n-pxx+1;
swap(m,n);
}
else if(x==2)
{
px=n-pxx+1;
py=m-pyy+1;
}
else if(x==3)
{
px=m-pyy+1;
py=pxx;
swap(m,n);
}
pxx=px,pyy=py;
if(y==1)
{
py=m-pyy+1;
}
pxx=px,pyy=py;
if(z==1)
{
px=m-pyy+1;
py=pxx;
swap(m,n);
}
else if(z==2)
{
px=n-pxx+1;
py=m-pyy+1;
}
else if(z==3)
{
px=pyy;
py=n-pxx+1;
swap(m,n);
}
cout<<px<<' '<<py<<endl;
}
return 0;
}