Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.06 KB | None | 0 0
  1. package MagicalMountain;
  2.  
  3. import java.util.HashMap;
  4. import java.util.LinkedList;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.     static Scanner sc = new Scanner(System.in);
  9.     static int nbrIteration, nbrInput;
  10.     static Pierre pierres[];
  11.     static HashMap<Integer,LinkedList<Integer>> levels = new HashMap();
  12.  
  13.  
  14.     private static class Pierre{
  15.         int value, level;
  16.         Pierre left, right, up;
  17.  
  18.         public Pierre(int value, int level) {
  19.             this.value = value;
  20.             this.level = level;
  21.             levels.putIfAbsent(this.level,new LinkedList());
  22.             levels.get(level).addFirst(this.value);
  23.         }
  24.  
  25.         public Pierre(int value) {
  26.             this.value = value;
  27.         }
  28.  
  29.         public void addLink(Pierre pierre){
  30.             pierre.up = this;
  31.             pierre.level = this.level+1;
  32.             levels.putIfAbsent(pierre.level,new LinkedList());
  33.  
  34.             if(this.left == null) {
  35.                 this.left = pierre;
  36.                 levels.get(pierre.level).addLast(pierre.value);
  37.             }
  38.             else{
  39.                 this.right = pierre;
  40.                 levels.get(pierre.level).addLast(pierre.value);
  41.             }
  42.  
  43.         }
  44.     }
  45.  
  46.     public static void main(String[] args) {
  47.         nbrIteration = sc.nextInt();
  48.         for (int i = 0 ; i< nbrIteration;++i){
  49.             nbrInput = sc.nextInt();
  50.  
  51.             pierres = new Pierre[(int) Math.pow(2,nbrInput)+1];
  52.             pierres[1] = new Pierre(1,1);
  53.  
  54.             for(int o = 1 ; o < nbrInput;++o){
  55.                 int a,b;
  56.                 a = sc.nextInt();
  57.                 b = sc.nextInt();
  58.                 if(pierres[a] == null)
  59.                     pierres[a] = new Pierre(a);
  60.                 if(pierres[b] == null)
  61.                     pierres[b] = new Pierre(b);
  62.  
  63.                 pierres[a].addLink(pierres[b]);
  64.             }
  65.             for(int o = 1 ; levels.containsKey(o);++o)
  66.                 System.out.println("level "+o+" left "+levels.get(o).getFirst()+" right "+levels.get(o).getLast());
  67.  
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement