만드는 중입니다

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

X-합 스도쿠

시간 제한4초메모리 제한1024 MB

요약
주어진 n, m, 방향 d, 인덱스 x에 대해 사전순으로 가장 작은 2^n x 2^m 스도쿠에서 해당 행 또는 열의 X-합을 구합니다.
난이도

어려움10점 중 8점

유형
수학, 비트 연산, 재귀
정답자
아직 제출이 없습니다

문제

n×mn\times m 스도쿠는 m×nm\times n개의 영역으로 이루어진 격자이며, 각 영역에는 n×mn\times m개의 칸이 있다. 따라서 n×mn\times m 스도쿠에는 nm×nmnm\times nm개의 칸이 있다. 1부터 nmnm까지의 정수는 각 행, 각 열, 각 영역에 정확히 한 번씩 나타난다.

행이나 열의 정수를 어느 한 방향에서 시작해 길이 nmnm인 수열로 나열한다. 수열의 첫 번째 정수를 XX라고 하면, X-합은 수열의 처음 XX개 정수의 합이다.

위 그림은 X-합이 표시된 4×24\times 2 스도쿠이다. 오른쪽에서 왼쪽으로 나열한 7번째 행은 [3,4,1,2,7,8,5,6][3,4,1,2,7,8,5,6]이다. 첫 정수 XX는 3이므로, 오른쪽 방향에서 본 7번째 행의 X-합은 8=3+4+18=3+4+1이다.

두 양의 정수 nn, mm, 방향 dd, 인덱스 xx가 주어진다. 사전순으로 가장 작은 2n×2m2^n\times 2^m 스도쿠에서, 방향 dd에서 본 xx번째 행 또는 xx번째 열의 X-합을 구하라.

크기가 같은 두 스도쿠 aa, bb에 대해, ai,j<bi,ja_{i,j}<b_{i,j}인 ii, jj가 존재하고, 모든 x<ix<i에 대해 ax,y=bx,ya_{x,y}=b_{x,y}이며, x=ix=i이고 y<jy<j인 모든 칸에서 ax,y=bx,ya_{x,y}=b_{x,y}이면, aa는 bb보다 사전순으로 작다.

입력

첫 줄에 테스트 케이스의 수 TT (1≤T≤1051\le T\le 10^5)가 주어진다.

각 테스트 케이스는 한 줄이며, 정수 nn, mm (1≤n,m≤301\le n, m\le 30), 문자열 dd, 정수 xx (1≤x≤2n+m1\le x\le 2^{n+m})가 주어진다. 스도쿠의 크기는 2n×2m2^n\times 2^m이다. 방향 dd는 left, right, top, bottom 중 하나이다. xx는 행 또는 열의 번호이다.

출력

각 테스트 케이스마다 사전순으로 가장 작은 2n×2m2^n\times 2^m 스도쿠에서, 방향 dd에서 본 xx번째 행 또는 xx번째 열의 X-합을 한 줄에 정수 하나로 출력한다.

답은 264−12^{64}-1을 넘을 수 있다.

예제2

  1. 예제 1

    입력
    4
    2 1 top 1
    2 1 bottom 2
    2 1 left 3
    2 1 right 4
    
    예상 출력
    1
    34
    27
    3
    
  2. 예제 2

    입력
    4
    11 19 top 1053766555
    12 26 top 230781535210
    14 10 right 8344647
    7 30 right 70120568170
    
    예상 출력
    565741033271081135
    31719572400444316026492
    112693473538824
    477453505821905419941