IUPC와 비밀번호
시간 제한0.5초메모리 제한1024 MB
기준 문자열 S가 주어질 때, 각 질의 문자열 T가 S의 문자를 섞은 뒤 앞뒤에 임의의 문자열을 붙이고 한 글자를 다른 글자로 바꿔서 만들어질 수 있는지 판정한다.
문제
치훈이는 인하대학교 빡코딩 대회, IUPC (Inha University Ppakcoding Contest)에 문제를 출제하고 있다.
대회에 낼 문제들은 극비사항이기 때문에, 치훈이는 문제가 저장된 컴퓨터에 비밀번호를 설정해 놓았다. 치훈이가 비밀번호를 만드는 방식은 다음과 같다.
- 알파벳 소문자로만 이루어진 문자열 (S)를 준비한다.
- 문자열의 각 문자들의 위치를 랜덤하게 섞는다.
- 섞인 문자열의 앞과 뒤에 임의의 문자열을 각각 추가한다. 추가하는 문자열의 길이는 0일 수도 있다.
- 마지막으로 임의의 위치에 있는 문자 1개를 골라 다른 문자로 바꾼다.
그런데 어느 날, 치훈이는 문자열 문제를 풀다가 실수로 컴퓨터 비밀번호와 다른 문자열들을 섞어 버려서 어떤 문자열이 비밀번호였는지 알 수 없게 되어 버렸다.
지금 치훈이에게 (N)개의 비밀번호 후보 문자열이 있다. IUPC의 성공적인 개최를 위해 각 비밀번호 후보 문자열이 비밀번호일 가능성이 있는지 알아내 주자!
입력
첫째 줄에 (S)가 주어진다.
두번째 줄에 비밀번호 후보 문자열의 개수 (N)이 주어진다.
다음 (N)개의 줄에 걸쳐, (i)번째 비밀번호 후보 문자열 (T_i)이 각각 주어진다.
출력
(N)개의 줄에 걸쳐, 각 (T_i)가 비밀번호일 가능성이 있는지 여부를 출력한다.
가능하면 "YES", 불가능하면 "NO"를 출력한다.
제한
- 1 ≤ (S)의 길이 ≤ 2,000
- 1 ≤ (N) ≤ 2,000
- 1 ≤ (T_i)의 길이 ≤ 2,000
- 입력으로 주어지는 모든 문자열은 알파벳 소문자로만 이루어져 있다.