부분 수열이 아닌 최단 문자열
시간 제한2초메모리 제한256 MB
알파벳 크기 k와 문자열 s가 주어질 때 s의 부분 수열이 아닌 가장 짧은 문자열의 길이와 그 개수를 1e9+7로 나눈 나머지를 구합니다.
문제
이 문제에서 크기가 인 알파벳은 아래 리스트의 처음 개 글자를 말한다.
a, b, c, ..., z, A, B, C, ..., Z, 0, 1, ..., 9
각 테스트 케이스마다 가 주어지고, 크기가 인 알파벳만 고려한다.
문자열 이 문자열 의 부분 수열이려면 , , ..., 을 만족하는 인덱스 이 존재해야 한다. 예를 들어 acb는 babcaab의 부분 수열이다.
문자열 이 주어졌을 때, 의 부분 수열이 아닌 문자열 중 이 가장 작은 것을 찾고, 그런 문자열이 몇 개인지 세는 프로그램을 작성하시오. 는 크기가 인 알파벳의 글자로만 이루어진다.
입력
첫째 줄에 테스트 케이스의 개수 ()가 주어진다. 이어지는 각 줄에 알파벳의 크기 ()와 문자열 ()이 공백으로 구분되어 주어진다. 는 위 리스트의 글자로만 이루어져 있다.
출력
각 테스트 케이스마다 두 정수를 한 줄에 출력한다. 첫 번째 정수는 가장 작은 이고, 두 번째 정수는 그런 문자열 의 개수를 로 나눈 나머지이다.