Advertisement
Guest User

Untitled

a guest
Oct 24th, 2017
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Pr01BitSnow {
  6.     private static final int BITS = 16;
  7.  
  8.     public static void main(String[] args) {
  9.         try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
  10.             String[] input = reader.readLine().split(",\\s+");
  11.             int[] numbers = new int[input.length];
  12.             for (int j = 0; j < input.length; j++) {
  13.                 numbers[j] = Integer.parseInt(input[j]);
  14.             }
  15.  
  16.             int[] masks = new int[BITS];
  17.             int[] countBits = new int[BITS];
  18.             for (int bit = 0; bit < BITS; bit++) {
  19.                 masks[bit] = 1 << bit;
  20.             }
  21.  
  22.             for (int number1 : numbers) {
  23.                 for (int bit = 0; bit < BITS; bit++) {
  24.                     if ((number1 & masks[bit]) != 0) {
  25.                         countBits[bit]++;
  26.                     }
  27.                 }
  28.             }
  29.  
  30.             for (int num = numbers.length - 1; num >= 0; num--) {
  31.                 int number = 0;
  32.                 for (int bit = 0; bit < BITS; bit++) {
  33.                     if (countBits[bit] > 0) {
  34.                         number |= masks[bit];
  35.                         countBits[bit]--;
  36.                     }
  37.                 }
  38.                 numbers[num] = number;
  39.             }
  40.  
  41.             StringBuilder sb = new StringBuilder();
  42.             for (int number : numbers) {
  43.                 sb.append(number).append(", ");
  44.             }
  45.             sb.delete(sb.length() - 2, sb.length());
  46.             System.out.println(sb);
  47.         } catch (IOException e) {
  48.             e.printStackTrace();
  49.         }
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement