- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.io.StreamTokenizer;
- public class B965 {
- public static void main(String[] args) {
- StreamTokenizer cin = new StreamTokenizer(new BufferedReader(
- new InputStreamReader(System.in)));
- PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
- try {
- while (cin.nextToken() != StreamTokenizer.TT_EOF) {
- // input
- int r = (int) cin.nval;
- cin.nextToken();
- int c = (int) cin.nval;
- cin.nextToken();
- int m = (int) cin.nval;
- int method[] = new int[m];
- int initArr[][] = new int[r][c];
- int nowArr[][] = new int[r][c];
- for (int i = 0; i < r; i++) {
- for (int j = 0; j < c; j++) {
- cin.nextToken();
- initArr[i][j] = (int) cin.nval;
- }
- }
- for (int i = 0; i < m; i++) {
- cin.nextToken();
- method[i] = (int) cin.nval;
- }
- // do
- nowArr = initArr;
- for (int i = m - 1; i >= 0; i--) {
- if (method[i] == 0) { // 旋
- nowArr = spin(nowArr);
- } else { // 翻
- nowArr = flip(nowArr);
- }
- }
- for (int i = 0; i < nowArr.length; i++) {
- for (int j = 0; j < nowArr[0].length; j++)
- out.print(nowArr[i][j]+" ");
- out.println("");
- }
- out.flush();
- }
- } catch (IOException e) {
- // TODO 自動產生的 catch 區塊
- e.printStackTrace();
- }
- }
- static int[][] spin(int[][] in) { // 旋轉
- int[][] tmp = new int[in[0].length][in.length];
- for (int k = 0; k < in[0].length; k++) {
- for (int n = 0; n < in.length; n++) {
- tmp[k][n] = in[n][in[0].length-k-1];
- }
- }
- return tmp;
- }
- static int[][] flip(int[][] in) { // 翻轉
- int[][] tmp = new int[in.length][in[0].length];
- for (int k = in.length - 1; k >= 0; k--) {
- for (int n = 0; n < in[0].length; n++)
- tmp[k][n] = in[in.length - k - 1][n];
- }
- return tmp;
- }
- }
複製代碼 |