AcWing 3535. C翻转
原题链接
简单
作者:
forhjh
,
2023-03-23 19:33:57
,
所有人可见
,
阅读 184
#include <iostream>
#include <vector>
using namespace std;
int a[10][10];
vector<int> v;
void clockwise(int x, int y, int n)
{
int col = y + n - 1, li = x + n - 1;
for (int i = x; i <= li; i ++)
for (int j = y; j <= col; j ++)
v.push_back(a[i][j]);
int k = 0;
for (int j = col; j >= y; j --)
{
for (int i = x; i <= li; i ++)
a[i][j] = v[k ++];
}
for (int i = 1; i <= 5; i ++)
{
for (int j = 1; j <= 5; j ++)
cout << a[i][j] << " ";
puts("");
}
v.clear();
}
void unclockwise(int x, int y, int n)
{
int col = y + n - 1, li = x + n - 1;
for (int j = col; j >= y; j --)
{
for (int i = x; i <= li; i ++)
v.push_back(a[i][j]);
}
int k = 0;
for (int i = x; i <= li; i ++)
{
for (int j = y; j <= col; j ++)
a[i][j] = v[k ++];
}
for (int i = 1; i <= 5; i ++)
{
for (int j = 1; j <= 5; j ++)
cout << a[i][j] << " ";
puts("");
}
v.clear();
}
int main()
{
for (int i = 1; i <= 5; i ++)
for (int j = 1; j <= 5; j ++)
cin >> a[i][j];
int a,b,x,y;
cin >> a >> b >> x >> y;
if (a == 1)
{
clockwise(x, y, b);
}
else
{
unclockwise(x, y, b);
}
return 0;
}