부분 수열 XOR 합
면접 대비시간 제한2초메모리 제한512 MB
수열의 모든 연속 부분 배열에 대해 XOR 값을 구해 각 값이 몇 번 나타나는지 세고, 가장 자주 나온 값과 그 횟수를 출력한다. 최빈값이 여러 개면 가장 작은 값을 고른다.
문제
길이가 인 수열 이 있다. 의 부분 수열은 을 만족하는 두 인덱스 , 로 정해지는 연속한 구간 이다.
예를 들어 이면 부분 수열은 다음 6개이다.
부분 수열의 XOR 합은 그 부분 수열에 들어 있는 모든 수를 XOR한 값이다. 부분 수열은 모두 개이므로 XOR 합도 개 나온다. 이 값 중에서 가장 많이 등장한 값과 그 등장 횟수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 수열 의 크기 ()이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다 ().
출력
첫째 줄에 두 정수를 공백으로 구분해 출력한다. 첫 번째 정수는 XOR 합으로 가장 많이 등장한 값이고, 두 번째 정수는 그 값이 등장한 횟수이다. 가장 많이 등장한 값이 여러 개면 그중 가장 작은 값을 출력한다.