返回列表 發帖
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.io.OutputStreamWriter;
  5. import java.io.PrintWriter;
  6. import java.io.StreamTokenizer;

  7. public class B965 {
  8.         public static void main(String[] args) {
  9.                 StreamTokenizer cin = new StreamTokenizer(new BufferedReader(
  10.                                 new InputStreamReader(System.in)));
  11.                 PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  12.                 try {
  13.                         while (cin.nextToken() != StreamTokenizer.TT_EOF) {
  14.                                 // input
  15.                                 int r = (int) cin.nval;
  16.                                 cin.nextToken();
  17.                                 int c = (int) cin.nval;
  18.                                 cin.nextToken();
  19.                                 int m = (int) cin.nval;
  20.                                 int method[] = new int[m];
  21.                                 int initArr[][] = new int[r][c];
  22.                                 int nowArr[][] = new int[r][c];
  23.                                 for (int i = 0; i < r; i++) {
  24.                                         for (int j = 0; j < c; j++) {
  25.                                                 cin.nextToken();
  26.                                                 initArr[i][j] = (int) cin.nval;
  27.                                         }
  28.                                 }
  29.                                 for (int i = 0; i < m; i++) {
  30.                                         cin.nextToken();
  31.                                         method[i] = (int) cin.nval;
  32.                                 }
  33.                                 // do
  34.                                 nowArr = initArr;
  35.                                 for (int i = m - 1; i >= 0; i--) {
  36.                                         if (method[i] == 0) { // 旋
  37.                                                 nowArr = spin(nowArr);
  38.                                         } else { // 翻
  39.                                                 nowArr = flip(nowArr);
  40.                                         }
  41.                                 }

  42.                                 for (int i = 0; i < nowArr.length; i++) {
  43.                                         for (int j = 0; j < nowArr[0].length; j++)
  44.                                                 out.print(nowArr[i][j]+" ");
  45.                                         out.println("");
  46.                                 }
  47.                                 out.flush();
  48.                         }
  49.                 } catch (IOException e) {
  50.                         // TODO 自動產生的 catch 區塊
  51.                         e.printStackTrace();
  52.                 }
  53.         }

  54.         static int[][] spin(int[][] in) { // 旋轉
  55.                 int[][] tmp = new int[in[0].length][in.length];
  56.                 for (int k = 0; k < in[0].length; k++) {
  57.                         for (int n = 0; n < in.length; n++) {
  58.                                 tmp[k][n] = in[n][in[0].length-k-1];
  59.                         }
  60.                 }
  61.                 return tmp;
  62.         }

  63.         static int[][] flip(int[][] in) { // 翻轉
  64.                 int[][] tmp = new int[in.length][in[0].length];

  65.                 for (int k = in.length - 1; k >= 0; k--) {
  66.                         for (int n = 0; n < in[0].length; n++)
  67.                                 tmp[k][n] = in[in.length - k - 1][n];
  68.                 }
  69.                 return tmp;
  70.         }
  71. }
複製代碼

TOP

返回列表