아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

흥미진진한 토너먼트

시간 제한1초메모리 제한512 MB

요약
실력이 서로 다른 선수들과 선수마다 주어진 최대 경기 수 제한이 있을 때, 임의의 토너먼트 대진을 구성해 모든 경기의 XOR 흥미도 합의 최솟값과 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 정렬, 비트 연산
정답자
아직 제출이 없습니다

문제

여러 선수가 아무 제약 없는 토너먼트에서 겨룬다.

각 선수는 서로 다른 실력 값을 가진다. 실력 값은 정수로 표현된다. 경기 하나에서는 두 선수가 맞붙고, 실력 값이 더 큰 선수가 이긴다. 실력 값이 더 작은 선수는 곧바로 토너먼트에서 탈락한다. 토너먼트는 한 선수만 남을 때까지 계속된다.

일정상의 제약 때문에 각 선수에게는 치를 수 있는 경기 수의 상한이 있다. 흥미롭게도, 이 제약이 토너먼트 대진이 만족해야 하는 유일한 조건이다. 다시 말해, 모든 선수가 탈락하거나 토너먼트 전체에서 우승할 때까지 각자의 경기 수 상한 이하로만 경기를 치른다면, 대진이 균형 이진 트리 모양일 필요는 없다.

토너먼트 주최자로서, 당신은 유효한 대진을 마음대로 고를 수 있다. 참가자 목록을 보고, 토너먼트가 얼마나 흥미진진해질 수 있는지 궁금해진다. 구체적으로, 경기의 흥미도는 두 선수의 실력 값을 비트 단위 XOR한 값으로 정의한다. 토너먼트의 흥미도는 각 경기의 흥미도를 모두 더한 값이다.

토너먼트 전체의 흥미도가 가질 수 있는 최솟값과 최댓값을 구하라.

입력

입력의 첫 줄에는 정수 nn (3≤n≤1003 \le n \le 100)이 주어진다. 이는 토너먼트에 참가하는 선수의 수이다.

다음 nn개의 줄에는 각각 정수 ss (0≤s<2300 \le s < 2^{30})와 gg (2≤g<n2 \le g < n)가 주어진다. 각 줄이 선수 한 명을 나타내며, ss는 그 선수의 실력 값이고 gg는 그 선수가 치를 수 있는 경기 수의 상한이다.

출력

토너먼트 전체의 흥미도가 가질 수 있는 최솟값과 최댓값을 공백으로 구분해 한 줄에 출력한다. 최솟값을 먼저 출력한다.

예제2

  1. 예제 1

    입력
    4
    41 2
    13 2
    36 3
    17 3
    
    예상 출력
    94 110
    
  2. 예제 2

    입력
    6
    66 5
    628 4
    216 5
    78 4
    230 5
    74 3
    
    예상 출력
    882 2650