시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
0.5 초 256 MB 12 1 1 100.000%

문제

오늘도 무슨 장난을 칠지 고민하던 교준이는 새로운 DNS 서버를 만들어서 학교 내 GSHS2와 GSHS5에 접속하는 모든 사람들이 송죽에 접속하려고 하면, 다른 사이트에 접속하게 하려고 한다. 하지만 서버를 만드는 건 매우 귀찮은 일이기에 뭔가 부려먹기 쉬운 강민이를 데려다가 서버를 만들려고 한다. 교준이의 성공적인 장난을 도와주려는 강민이를 위해 서버를 만드는 작업을 도와주자.

서버를 만들기 위해 필요한 것은 DomainIP다. Domainwww.acmicpc.net과 같이 문자열로 이루어져 있고, IP192.168.0.1과 같이 0 이상 231-1 이하의 정수 4개와 점 3개로 이루어져 있다. 그리고 올바른 IP는 0 이상 255 이하의 수를 사용한다. 우리가 쓰는 Domain 주소는 모두 IP로 변환되어 데이터를 받아온다. IP0.0.0.0는 쓰지 않는다. 입력에서 주어지는 Domain은 영어 알파벳으로 시작하고 알파벳과 숫자 및 마침표로 이루어진 공백이 없는 길이 50이하의 문자열이다.

입력

첫번째 줄에 쿼리의 개수를 의미하는 정수 Q가 주어진다.

두번째 줄부터 Q개의 줄에 걸쳐, 다음 네 가지 중 한 가지의 쿼리가 들어온다.

  • URL D I : D라는 DomainIPI다. (I올바른 IP, I ≠ 0.0.0.0)

    (URL www.acmicpc.net 104.26.10.18 : www.acmicpc.netIP = 104.26.10.18)

  • IP I S : I라는 IP를 가진 곳에는 S라는 데이터가 있다. (IREDIRECT되지 않은 올바른 IP, S는 영어 알파벳과 숫자로 이루어진 공백 없는 길이 10 이하의 문자열)

    (IP 104.26.10.18 MINJE : 104.26.10.18의 데이터 = MINJE)

  • REDIRECT I1 I2 : I1IP를 가진 곳은 이제부터 I2에 연결된다. 이때, I1REDIRECTIP, I2REDIRECTIP라고 한다. I1REDIRECT되지 않은 IP다. I2의 데이터는 I1의 데이터로 갱신된다. (I1I2올바른 IP, I10.0.0.0, I2 ≠ 0.0.0.0)

    (REDIRECT 104.26.10.18 104.26.10.19 : 앞으로 104.26.10.18로 들어오는 요청은 104.26.10.19에 연결된다.)

  • HTTP I (D) : D라는 Domain 또는 I라는 IP를 가진 곳의 데이터를 다음 세 가지 경우로 나누어서 출력한다.

    • 입력 : HTTP www.acmicpc.net (정상적인 경우)

      출력 :

      HTTP 200 OK

      Requested Data : MINJE (IP 쿼리에 의해 주어진 데이터)

    • 입력 : HTTP 19222.222.222.222 (IP의 수가 0 이상 255 이하가 아닌 경우)

      출력 :

      HTTP 400 Bad Request

    • 입력 : HTTP www.acmicpcccc.net (Domain이나 IP가 없는 경우, 또는 데이터가 없는 경우)

      출력 :

      HTTP 404 Not Found

출력

HTTP 쿼리에 대한 값을 출력한다.

제한

모든 입력 데이터는 다음 조건을 만족한다.

  • 1 ≤ Q ≤ 5×104

서브태스크 1 (12점)

모든 Domainstudent.gs.hs.kr

서브태스크 2 (22점)

입력으로 REDIRECT 쿼리가 들어오지 않음.

서브태스크 3 (34점)

Q ≤ 5×103.

서브태스크 4 (32점)

추가적인 제약은 없다.

예제 입력 1

4
URL www.acmicpc.net 104.26.10.18
IP 104.26.10.18 MINJE
HTTP www.acmicpc.net
HTTP 104.26.10.18

예제 출력 1

HTTP 200 OK
Requested Data : MINJE
HTTP 200 OK
Requested Data : MINJE

예제 입력 2

6
URL www.acmicpc.net 9.9.9.9
IP 9.9.9.9 IamCoder
REDIRECT 9.9.9.9 10.10.10.10
HTTP acmicpc.net
HTTP 9.9.9.9
HTTP 10.10.10.10

예제 출력 2

HTTP 200 OK
Requested Data : IamCoder
HTTP 200 OK
Requested Data : IamCoder
HTTP 200 OK
Requested Data : IamCoder

예제 입력 3

9
HTTP student.gs.hs.kr
HTTP 12424.12.12.12
HTTP 123.12.12.12
IP 12.12.12.12 WOW
HTTP 12.12.12.12
URL www.student.gs.hs.kr 12.12.12.12
URL student.gs.hs.kr 123.12.12.12
HTTP 123.12.12.12
HTTP student.gs.hs.kr

예제 출력 3

HTTP 404 Not Found
HTTP 400 Bad Request
HTTP 404 Not Found
HTTP 200 OK
Requested Data : WOW
HTTP 404 Not Found
HTTP 200 OK
Requested Data : WOW

안타깝게도 www.acmicpc.net 라고 쓰는 사람은 없고 모두 귀찮아서 acmicpc.net와 같이 앞의 www.는 생략해서 쓴다. 따라서 없는 Domain이라 할지라도 앞의 www.만 생략되어 있다면 다음과 같은 방법으로 결정한다.

  1. acmicpc.net만 선언되어 있음 → acmicpc.netwww.acmicpc.net을 동일하게 처리한다.
  2. www.acmicpc.netacmicpc.net이 모두 선언되어 있음 → acmicpc.netwww.acmicpc.net을 구분한다.

아홉번째 쿼리에서, student.gs.hs.krIP는 선언되어 있지만 그 IP에는 어떠한 데이터도 없으므로 www.student.gs.hs.kr에 연결하여 데이터를 받아옴에 유의하라.

예제 입력 4

15
URL LetGyojunGoIOI2018.org 20.18.6.10
IP 20.18.6.10 IOI2018
HTTP LetGyojunGoIOI2018.org
HTTP www.LetGyojunGoIOI2018.org
HTTP letgyojungoioi2018.org
URL www.LetGyojunGoIOI2018.org 6.10.20.18
IP 6.10.20.18 2018IOI
HTTP LetGyojunGoIOI2018.org
HTTP www.LetGyojunGoIOI2018.org
HTTP WWW.LetGyojunGoIOI2018.org
URL www.com 0.0.0.1
IP 0.0.0.1 Possible
HTTP www.com
HTTP WWW.com
HTTP com

예제 출력 4

HTTP 200 OK
Requested Data : IOI2018
HTTP 404 Not Found
HTTP 404 Not Found
HTTP 200 OK
Requested Data : IOI2018
HTTP 200 OK
Requested Data : 2018IOI
HTTP 404 Not Found
HTTP 200 OK
Requested Data : Possible
HTTP 404 Not Found
HTTP 200 OK
Requested Data : Possible

출처

  • 문제를 만든 사람: lgm9

채점

  • 예제는 채점하지 않는다.