알려진 모든 매개변수와 모든 악성 값을 최소 개수의 URL로 커버하되, 매개변수를 최대 P개씩 묶는 규칙에 따라 URL 목록을 출력한다.
보통5구현문자열그리디정렬아직 제출이 없습니다시간 제한1초메모리 제한128 MB미르코는 최근 해커로 취직했다. 상사에게 받은 첫 업무는 사무실 웹사이트에서 자주 일어나는 오류를 자동으로 찾아내는 도구를 만드는 것이다.
웹 페이지 주소(URL)는 주소와 쿼리 두 부분으로 이루어진다.
| 주소 | 쿼리 |
|---|---|
http://www.hsin.hr/stud/index.php | tim=1&kategorija=pero laka&f=14 |
주소는 http://로 시작하는 문자열이고 나머지 부분은 영문 대소문자, 점 ., 슬래시 /로 이루어진다. 주소와 쿼리는 물음표 ?로 구분하며 물음표는 URL에 정확히 한 번 나타난다. 쿼리는 하나 이상의 매개변수로 이루어진다. 각 매개변수는 이름과 값의 순서쌍이고 둘은 등호 =로 구분한다. 매개변수 이름은 항상 영문 소문자로 이루어진 문자열이다. 매개변수 값은 영문 대소문자, 숫자, 공백 (ASCII 32)으로 이루어진 문자열이다. 한 쿼리에 여러 매개변수가 올 수 있으며 매개변수끼리는 &로 구분한다. 한 쿼리에 이름이 같은 매개변수가 두 번 나타날 수는 없다.
해커는 매개변수 값을 바꿔서 웹 페이지에 허가되지 않은 접근을 시도하곤 한다. 미르코는 주어진 URL과 자주 쓰이는 악성 값으로 새 URL 목록을 만들어야 한다. 새 목록에서 알려진 매개변수 각각은 모든 악성 값과 적어도 한 번씩 함께 호출되어야 한다. 알려진 매개변수란 입력 URL 가운데 하나 이상에 나타나는 매개변수 이름이다. 오류를 찾기 쉽도록 미르코는 한 쿼리에 매개변수를 최대 P개까지만 쓸 수 있다. URL 하나를 불러오는 데 몇 초씩 걸리므로 전체 URL 개수는 가능한 한 적어야 한다.
첫째 줄에 세 자연수 N, P, Z가 주어진다.
다음 N개의 줄에 URL이 하나씩 주어진다. 모든 URL의 주소는 같다. 모든 URL은 위에서 설명한 형식을 따른다. 각 URL의 길이는 250자 이하이고 매개변수가 적어도 하나 있다.
다음 Z개의 줄에 악성 값이 한 줄에 하나씩 주어진다. 각 악성 값의 길이는 25자 이하이며 올바른 매개변수 값이다. 악성 값은 공백으로 시작하거나 끝날 수 있다.
알려진 매개변수 각각이 모든 악성 값과 적어도 한 번씩 함께 호출되도록 URL 목록을 출력한다. 한 줄에 URL을 하나씩 출력한다. URL에는 알려진 매개변수와 악성 값만 쓸 수 있다.
조건을 만족하는 목록은 여러 가지일 수 있으므로 다음 규칙으로 만든 목록을 출력한다. 이 규칙으로 만든 목록은 URL 개수가 가장 적다.
?, 그리고 묶음의 쌍을 순서대로 이름=값 꼴로 써서 &로 이어 붙인 쿼리를 차례로 붙인 것이다.