Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MagicalMountain;
- import java.util.HashMap;
- import java.util.LinkedList;
- import java.util.Scanner;
- public class Main {
- static Scanner sc = new Scanner(System.in);
- static int nbrIteration, nbrInput;
- static Pierre pierres[];
- static HashMap<Integer,LinkedList<Integer>> levels = new HashMap();
- private static class Pierre{
- int value, level;
- Pierre left, right, up;
- public Pierre(int value, int level) {
- this.value = value;
- this.level = level;
- levels.putIfAbsent(this.level,new LinkedList());
- levels.get(level).addFirst(this.value);
- }
- public Pierre(int value) {
- this.value = value;
- }
- public void addLink(Pierre pierre){
- pierre.up = this;
- pierre.level = this.level+1;
- levels.putIfAbsent(pierre.level,new LinkedList());
- if(this.left == null) {
- this.left = pierre;
- levels.get(pierre.level).addLast(pierre.value);
- }
- else{
- this.right = pierre;
- levels.get(pierre.level).addLast(pierre.value);
- }
- }
- }
- public static void main(String[] args) {
- nbrIteration = sc.nextInt();
- for (int i = 0 ; i< nbrIteration;++i){
- nbrInput = sc.nextInt();
- pierres = new Pierre[(int) Math.pow(2,nbrInput)+1];
- pierres[1] = new Pierre(1,1);
- for(int o = 1 ; o < nbrInput;++o){
- int a,b;
- a = sc.nextInt();
- b = sc.nextInt();
- if(pierres[a] == null)
- pierres[a] = new Pierre(a);
- if(pierres[b] == null)
- pierres[b] = new Pierre(b);
- pierres[a].addLink(pierres[b]);
- }
- for(int o = 1 ; levels.containsKey(o);++o)
- System.out.println("level "+o+" left "+levels.get(o).getFirst()+" right "+levels.get(o).getLast());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement