Guest User

Div2C.java

a guest
Apr 25th, 2016
84
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.*;
  2.  
  3. public class Div2C {
  4.  
  5.     static int[][] matrix;
  6.     static int n, m;
  7.  
  8.     public static void main(String[] args) {
  9.         Scanner sc = new Scanner(System.in);
  10.  
  11.         n = sc.nextInt();
  12.         m = sc.nextInt();
  13.         matrix = new int[n][m];
  14.         int q = sc.nextInt();
  15.        
  16.         sc.nextLine();
  17.         String[] queries = new String[q];
  18.         for (int i = 0; i < q; i++) {
  19.             queries[i] = sc.nextLine();
  20.         }
  21.  
  22.         for (int i = 0; i < q/2; i++) {
  23.             String tmp = queries[i];
  24.             queries[i] = queries[q-i-1];
  25.             queries[q-i-1] = tmp;
  26.         }
  27.        
  28.         for (int i = 0; i < q; i++) {
  29.             String[] aa = queries[i].split(" ");
  30.             int t = Integer.parseInt(aa[0]);
  31.             if (t == 1) {
  32.                 int r = Integer.parseInt(aa[1])-1;
  33.                 shiftrow(r);
  34.             } else if (t == 2) {
  35.                 int c = Integer.parseInt(aa[1])-1;
  36.                 shiftcol(c);
  37.             } else {
  38.                 int r = Integer.parseInt(aa[1])-1;
  39.                 int c = Integer.parseInt(aa[2])-1;
  40.                 int x = Integer.parseInt(aa[3]);
  41.                 matrix[r][c] = x;
  42.             }
  43.         }
  44.  
  45.         StringBuilder sb = new StringBuilder();
  46.         for (int i = 0; i < n; i++) {
  47.             for (int j = 0; j < m; j++) {
  48.                 sb.append(matrix[i][j]);
  49.                 if (j != m-1) sb.append(" ");
  50.             }
  51.             sb.append("\n");
  52.         }
  53.         System.out.println(sb.toString());
  54.        
  55.         sc.close();
  56.     }
  57.    
  58.     static void shiftrow(int r) {
  59.         int tmp = matrix[r][m-1];
  60.         for (int i = m-1; i > 0; i--) {
  61.             matrix[r][i] = matrix[r][i-1];
  62.         }
  63.         matrix[r][0] = tmp;
  64.     }
  65.    
  66.     static void shiftcol(int c) {
  67.         int tmp = matrix[n-1][c];
  68.         for (int i = n-1; i > 0; i--) {
  69.             matrix[i][c] = matrix[i-1][c];
  70.         }
  71.         matrix[0][c] = tmp;
  72.     }
  73.    
  74. }
RAW Paste Data