1554 {
1555 int dir, len, x, y;
1556
1557 vector<vector<int>> mat = vector<vector<int>>(6, vector<int>(6, 0));
1558 for(int i = 1; i <= 5; i++) {
1559 for(int j = 1; j <= 5; j++) {
1560 cin >> mat[i][j];
1561 }
1562 }
1563 vector<vector<int>> ret = mat;
1564 cin >> dir >> len >> x >> y;
1565 int transform[2][2][2] = {
1566 {{0, 1},
1567 {-1, 0}},
1568 {{0, -1},
1569 {1, 0}},
1570 };
1571 dir--;
1572 for(int i = x; i < x + len; i++) {
1573 for(int j = y; j < y + len; j++) {
1574 int i0 = i - x + 1;
1575 int j0 = j - y + 1;
1576 int i2 = transform[dir][0][0] * i0 + transform[dir][0][1] * j0;
1577 int j2 = transform[dir][1][0] * i0 + transform[dir][1][1] * j0;
1578 if(dir == 0) {
1579 j2 += len + 1;
1580 } else {
1581 i2 += len + 1;
1582 }
1583 i2 += x - 1;
1584 j2 += y - 1;
1585 ret[i2][j2] = mat[i][j];
1586 }
1587 }
1588 for(int i = 1; i <= 5; i++) {
1589 for(int j = 1; j <= 5; j++) {
1590 cout << ret[i][j] << ' ';
1591 }
1592 cout << endl;
1593 }
1594 return 0;
1595 }