# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
89339 | 2018-12-11T22:47:51 Z | jasony123123 | Poklon (COCI17_poklon7) | Java 11 | 0 ms | 0 KB |
import java.util.*; import java.io.*; import java.math.*; public class ProblemSeven { static BufferedReader reader; static StringTokenizer token; static int N; static int[][] C; public static void main(String[] args) throws IOException{ reader = new BufferedReader(new InputStreamReader(System.in)); nextLn(); N = nextInt(); C = new int[N+1][2]; for(int i = 1; i<=N; i++) { nextLn(); C[i][0] = nextInt(); C[i][1] = nextInt(); } BigInteger ans = dfs(1); System.out.println(ans.toString(2)); // System.out.println(ans); } public static BigInteger dfs(int x) { if(x<0) { return new BigInteger(Integer.toString(-x)); } BigInteger l = dfs(C[x][0]), r = dfs(C[x][1]); BigInteger ans; if(l.compareTo(r)>0) ans = l; else ans = r; return ans.multiply(new BigInteger("2")); } //nextLn moves the token to the nextLine public static void nextLn() throws IOException { token = new StringTokenizer(reader.readLine()); } //nextInt returns the next available integer public static int nextInt() { return Integer.parseInt(token.nextToken()); } //nextDouble returns the next available integer public static double nextDouble() { return Double.parseDouble(token.nextToken()); } //next returns the next word separated by spaces public static String next() { return token.nextToken(); } }