만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

16진수 통계

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

요약
16진수 문자열 S의 각 자리에 대해 16!개의 삭제 순서 전체에서 나타나는 16개 누적 합의 총합의 최솟값, 최댓값, 전체 합을 구한다.
난이도

보통10점 중 7점

유형
수학, 조합론, 정렬
정답자
아직 제출이 없습니다

문제

16진수로 표기된 정수 NN개가 수열 SS를 이룬다. sum(S)\mathrm{sum}(S)는 SS의 모든 원소를 더한 값이다.

16진수 숫자 16개를 한 번씩 나열한 순열을 pp라고 하자. 숫자 dd를 지운다는 것은 SS의 모든 원소에서 dd를 전부 지운다는 뜻이다. 남은 숫자는 순서를 그대로 지킨 채 다시 16진수로 읽고, 숫자가 하나도 남지 않은 원소는 0이 된다. 지운 뒤 맨 앞에 0이 와도 값은 달라지지 않는다.

pp의 순서대로 숫자를 하나씩 지우면서 매 단계의 수열을 기록하면 수열 16개를 얻는다. S[d1,…,dk]S[d_1,\dots,d_k]를 SS에서 숫자 d1d_1부터 dkd_k까지 지운 결과라고 쓰면, 이 16개는 S[p1]S[p_1], S[p1,p2]S[p_1,p_2], …\dots, S[p1,…,p16]S[p_1,\dots,p_{16}]이고 마지막 수열은 모든 원소가 0이다. 여기서 다음과 같이 정의한다.

total(S,p)=sum(S[p1])+sum(S[p1,p2])+⋯+sum(S[p1,…,p16])\mathrm{total}(S,p) = \mathrm{sum}(S[p_1]) + \mathrm{sum}(S[p_1,p_2]) + \dots + \mathrm{sum}(S[p_1,\dots,p_{16}])

예를 들어 S=[9af47c0b,2545557,ff6447979]S = [\texttt{9af47c0b}, \texttt{2545557}, \texttt{ff6447979}]이고 pp가 4\texttt{4}, 9\texttt{9}, 5\texttt{5}로 시작하면, 숫자 4\texttt{4}를 지운 S[4]S[\texttt{4}]는 [9af7c0b,255557,ff67979][\texttt{9af7c0b}, \texttt{255557}, \texttt{ff67979}]이고 이어서 숫자 9\texttt{9}를 지운 S[4,9]S[\texttt{4},\texttt{9}]는 [af7c0b,255557,ff677][\texttt{af7c0b}, \texttt{255557}, \texttt{ff677}]이다.

total(S,p)\mathrm{total}(S,p)는 어떤 순열 pp를 쓰는지에 따라 달라진다. 16진수 숫자의 순열 16!16!개를 모두 고려해서 세 값을 구하라. 가장 작은 total, 가장 큰 total, 그리고 순열마다 얻은 total을 모두 더한 값이다. 세 번째 값은 3b9aca07으로 나눈 나머지를 출력한다. 이 수는 10진수로 109+710^9+7이다. 앞의 두 값은 나머지를 취하지 않고 그대로 출력한다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. 다음 NN개의 줄에는 수열 SS의 원소 PP가 입력 순서대로 한 줄에 하나씩 주어진다. NN을 포함해 입력의 모든 수는 소문자를 쓰는 16진수다.

제한

  • 1≤N≤3f\texttt{1} \le N \le \texttt{3f}
  • 0≤P≤fffffffff\texttt{0} \le P \le \texttt{fffffffff}

출력

한 줄에 세 정수를 공백 하나로 구분해 소문자 16진수로 출력한다. 차례대로 가장 작은 total, 가장 큰 total, 그리고 16!16!개 순열의 total을 모두 더한 값을 3b9aca07으로 나눈 나머지다.

예제2

  1. 예제 1

    입력
    3
    9af47c0b
    2545557
    ff6447979
    
    예상 출력
    1312c99c b4e87e9387 5bb5fc
    
  2. 예제 2

    입력
    1
    fffffffff
    
    예상 출력
    0 effffffff1 15dac189