시간 제한
메모리 제한
시간 제한
3초
메모리 제한
256 MB
Nick은 새 웹 서버를 개발하고 있으며, 지금 작업 중인 기능은 접근 제어 목록(access control list) 지원입니다. 접근 제어 목록은 요청하는 쪽의 IP 주소에 따라 웹 사이트의 특정 자원에 대한 접근을 제한합니다.
각 IP 주소는 4바이트 숫자로, 십진수를 점으로 구분한 byte0.byte1.byte2.byte3 표기법으로 바이트 단위로 씁니다. 각 바이트는 0부터 255까지(포함)의 십진수이며, 불필요한 앞자리 0 없이 표기합니다. IP 주소들은 IP 네트워크로 묶입니다.
IP 네트워크는 두 개의 4바이트 숫자, 즉 네트워크 주소와 네트워크 마스크로 기술되며, 둘 다 IP 주소와 같은 표기법으로 씁니다.
네트워크 주소와 네트워크 마스크의 의미를 이해하려면 이들의 이진 표현을 살펴봐야 합니다. IP 주소, 네트워크 주소, 네트워크 마스크의 이진 표현은 32비트로 이루어지며, byte0에 대한 8비트(최상위에서 최하위 순), 이어서 byte1의 8비트, byte2의 8비트, byte3의 8비트 순서입니다.
IP 네트워크는 2^n개의 IP 주소 범위를 포함하며, 여기서 0 <= n <= 32입니다. 네트워크 마스크는 항상 앞쪽 32 - n개 비트가 1이고 뒤쪽 n개 비트가 0입니다. 네트워크 주소는 앞쪽 32 - n개 비트가 임의이고 뒤쪽 n개 비트가 0입니다. IP 네트워크는 앞쪽 32 - n개 비트가 네트워크 주소의 앞쪽 32 - n개 비트와 같고 뒤쪽 n개 비트는 임의인 모든 IP 주소를 포함합니다.
예를 들어, 네트워크 주소가 194.85.160.176이고 네트워크 마스크가 255.255.255.248인 IP 네트워크는 194.85.160.176부터 194.85.160.183까지(포함) 8개의 IP 주소를 포함합니다.
IP 네트워크는 보통 byte0.byte1.byte2.byte3/s로 표기하며, 여기서 byte0.byte1.byte2.byte3은 네트워크 주소이고 s는 네트워크 마스크에서 1로 설정된 비트의 개수입니다. 예를 들어 위 네트워크는 194.85.160.176/29로 표기합니다.
접근 제어 목록은 순서가 있는 규칙 목록을 담습니다. 각 규칙은 다음 형태 중 하나입니다.
deny from <IP 네트워크> — 지정된 IP 네트워크에 속한 모든 IP 주소의 접근을 거부합니다.deny from <IP 주소> — 지정된 IP 주소의 접근을 거부합니다.allow from <IP 네트워크> — 지정된 IP 네트워크에 속한 모든 IP 주소의 접근을 허용합니다.allow from <IP 주소> — 지정된 IP 주소의 접근을 허용합니다.어떤 쪽이 자원을 요청하면 그 IP 주소를 접근 제어 목록과 대조합니다. 규칙은 나열된 순서대로 검사하며, 처음으로 일치하는 규칙을 적용합니다. 어떤 규칙도 IP 주소와 일치하지 않으면 접근을 허용합니다.
접근 제어 목록과 요청하는 IP 주소들의 목록이 주어질 때, 각 요청에 대해 자원 접근이 허용되는지 판단하세요.
첫째 줄에는 접근 제어 목록의 규칙 개수 n이 주어집니다 (0 <= n <= 100000). 다음 n개의 줄에 각각 규칙이 하나씩 주어집니다. IP 네트워크는 항상 byte0.byte1.byte2.byte3/s 형태로 주어집니다.
그다음 줄에는 확인할 IP 주소의 개수 m이 주어집니다 (1 <= m <= 100000). 다음 m개의 줄에 각각 확인할 IP 주소가 하나씩 주어집니다.
각 요청에 대해 접근이 허용되면 A를, 거부되면 D를 출력합니다. 모든 답을 공백 없이 한 줄에 이어서 출력합니다.