다전제 승자는?
시간 제한0.5초메모리 제한512 MB
전체적으로는 Bob이 먼저 M승을 거두지만 그 전에 Albert가 N승을 달성하는 다전제 결과의 수를 세어 10^9+7로 나눈 나머지를 구한다.
문제
Albert와 Bob은 보드 게임을 즐겨하는데, 주로 다전제를 하여 승자를 가린다.
"선승 다전제"란 최대 번의 게임을 통해 번을 먼저 이긴 사람이 승자가 되는 게임 방식이다. 두 어린이가 하는 보드 게임에 비기는 경우는 없다고 하자. 예를 들어 인 경우 아래와 같은 다양한 결과가 나올 수 있다 (편의상 A는 Albert가 이긴 게임을, B는 Bob이 이긴 게임을 나타낸다):
AAA: 이 경우 Albert가 3승으로 다전제를 승리한다. 4, 5게임은 불필요하므로 진행하지 않는다.BAAA,ABAA,AABA: 이 경우 Albert가 3승으로 다전제를 승리한다. 5게임은 불필요하므로 진행하지 않는다.BBAAA,BAABA,BABAA,ABBAA,ABABA,AABBA: 이 경우 Albert가 3승으로 다전제를 승리한다.- 위의 10가지 결과 이외에도 A와 B를 뒤집으면 Bob이 다전제를 승리하는 10가지 결과를 얻을 수 있다.
두 사람이 다전제를 진행한 후, 당신에게 다음과 같은 아리송한 말을 남겼다: "선승 다전제의 최종 승자는 게임을 먼저 승리한 Bob이지만, 만약 선승 다전제를 했다면 Albert가 이겼을 것이다. 즉 Albert가 먼저 승을 했지만 Bob이 승을 먼저 하여 최종 승자가 되었다. 물론 이다."
이 말을 듣고 당신은 다전제의 결과가 어땠을지, 그리고 몇 가지나 다른 결과가 가능한지 궁금해졌다.
예를 들어 , 인 경우, "ABB"로 1게임을 Albert가 이기고 나머지 두 게임을 Bob이 이기는 경우가 유일하다.
다른 예로 , 인 경우 아래와 같은 세 가지 결과가 가능하다:
AABBB: 만약 2선승을 하는 다전제라면 Albert가 2게임째에서 다전제를 승리했겠지만, 3선승을 하는 다전제라 Bob이 최종 승자가 된다.ABABB: 만약 2선승을 하는 다전제라면 Albert가 3게임째에서 다전제를 승리했겠지만, 3선승을 하는 다전제라 Bob이 최종 승자가 된다.BAABB: 만약 2선승을 하는 다전제라면 Albert가 3게임째에서 다전제를 승리했겠지만, 3선승을 하는 다전제라 Bob이 최종 승자가 된다.
입력으로 , 이 주어졌을 때, Bob이 승을 하여 최종 승자가 되지만 Albert가 먼저 승을 하게되는 다전제의 결과가 몇 가지나 존재하는지 구해보자. 단, 이 수가 매우 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 입력은 한 줄에 , 두 정수가 공백으로 구분되어 주어진다.
출력
각 테스트 케이스의 정답을 각 줄에 출력한다.