흥미진진한 토너먼트
시간 제한1초메모리 제한512 MB
실력이 서로 다른 선수들과 선수마다 주어진 최대 경기 수 제한이 있을 때, 임의의 토너먼트 대진을 구성해 모든 경기의 XOR 흥미도 합의 최솟값과 최댓값을 구한다.
문제
여러 선수가 아무 제약 없는 토너먼트에서 겨룬다.
각 선수는 서로 다른 실력 값을 가진다. 실력 값은 정수로 표현된다. 경기 하나에서는 두 선수가 맞붙고, 실력 값이 더 큰 선수가 이긴다. 실력 값이 더 작은 선수는 곧바로 토너먼트에서 탈락한다. 토너먼트는 한 선수만 남을 때까지 계속된다.
일정상의 제약 때문에 각 선수에게는 치를 수 있는 경기 수의 상한이 있다. 흥미롭게도, 이 제약이 토너먼트 대진이 만족해야 하는 유일한 조건이다. 다시 말해, 모든 선수가 탈락하거나 토너먼트 전체에서 우승할 때까지 각자의 경기 수 상한 이하로만 경기를 치른다면, 대진이 균형 이진 트리 모양일 필요는 없다.
토너먼트 주최자로서, 당신은 유효한 대진을 마음대로 고를 수 있다. 참가자 목록을 보고, 토너먼트가 얼마나 흥미진진해질 수 있는지 궁금해진다. 구체적으로, 경기의 흥미도는 두 선수의 실력 값을 비트 단위 XOR한 값으로 정의한다. 토너먼트의 흥미도는 각 경기의 흥미도를 모두 더한 값이다.
토너먼트 전체의 흥미도가 가질 수 있는 최솟값과 최댓값을 구하라.
입력
입력의 첫 줄에는 정수 ()이 주어진다. 이는 토너먼트에 참가하는 선수의 수이다.
다음 개의 줄에는 각각 정수 ()와 ()가 주어진다. 각 줄이 선수 한 명을 나타내며, 는 그 선수의 실력 값이고 는 그 선수가 치를 수 있는 경기 수의 상한이다.
출력
토너먼트 전체의 흥미도가 가질 수 있는 최솟값과 최댓값을 공백으로 구분해 한 줄에 출력한다. 최솟값을 먼저 출력한다.