Guest User

Untitled

a guest
Jan 23rd, 2018
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.43 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. /**
  6.  * Created by bugkiller on 23/01/18.
  7.  */
  8.  
  9. class VideoGame {
  10.  
  11.     static int a[] = new int[100000];
  12.     static int commands[] = new int[100000];
  13.     static final int HOLDING = 1;
  14.     static final int EMPTY = 0;
  15.  
  16.     public static void main(String[] args) throws IOException {
  17.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  18.         int n, h, commandLength;
  19.         String[] s;
  20.         s = br.readLine().split("\\s");
  21.         n = Integer.parseInt(s[0]);
  22.         h = Integer.parseInt(s[1]);
  23.         s = br.readLine().split("\\s");
  24.         for (int i = 0; i < n; i++) {
  25.             a[i] = Integer.parseInt(s[i]);
  26.         }
  27.         s = br.readLine().split("\\s");
  28.         for (int i = 0; i < s.length; i++) {
  29.             commands[i] = Integer.parseInt(s[i]);
  30.         }
  31.         commandLength = s.length;
  32.         System.out.println(solve(a, commands, h, n, commandLength));
  33.     }
  34.  
  35.     private static String solve(int[] a, int[] commands, int h, int n, int commandLength) {
  36.         int cranePosition = 0, craneStatus = EMPTY;
  37.         boolean finished = false;
  38.         for (int i = 0; (i < commandLength) && !finished; i++) {
  39.             switch (commands[i]) {
  40.                 case 1:
  41.                     if (cranePosition > 0) {
  42.                         cranePosition--;
  43.                     }
  44.                     break;
  45.  
  46.                 case 2:
  47.                     if (cranePosition < commands.length - 1) {
  48.                         cranePosition++;
  49.                     }
  50.                     break;
  51.  
  52.                 case 3:
  53.                     if (craneStatus == EMPTY && a[cranePosition] > 0) {
  54.                         craneStatus = HOLDING;
  55.                         a[cranePosition]--;
  56.                     }
  57.                     break;
  58.  
  59.                 case 4:
  60.                     if (craneStatus == HOLDING && a[cranePosition] < h) {
  61.                         craneStatus = EMPTY;
  62.                         a[cranePosition]++;
  63.                     }
  64.                     break;
  65.  
  66.                 case 0:
  67.                     finished = true;
  68.             }
  69.         }
  70.         StringBuilder sbr = new StringBuilder();
  71.         for (int i = 0; i < n; i++) {
  72.             sbr.append(a[i]).append(" ");
  73.         }
  74.         sbr.deleteCharAt(sbr.length() - 1);
  75.         return sbr.toString();
  76.     }
  77.  
  78. }
Add Comment
Please, Sign In to add comment