| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 0.5 초 | 256 MB | 89 | 9 | 5 | 9.434% |
오늘도 무슨 장난을 칠지 고민하던 교준이는 새로운 DNS 서버를 만들어서 학교 내 GSHS2와 GSHS5에 접속하는 모든 사람들이 송죽에 접속하려고 하면, 다른 사이트에 접속하게 하려고 한다. 하지만 서버를 만드는 건 매우 귀찮은 일이기에 뭔가 부려먹기 쉬운 강민이를 데려다가 서버를 만들려고 한다. 교준이의 성공적인 장난을 도와주려는 강민이를 위해 서버를 만드는 작업을 도와주자.
서버를 만들기 위해 필요한 것은 Domain과 IP다. Domain은 www.acmicpc.net과 같이 문자열로 이루어져 있고, IP는 192.168.0.1과 같이 0 이상 231-1 이하의 정수 4개와 점 3개로 이루어져 있다. 그리고 올바른 IP는 0 이상 255 이하의 수를 사용한다. 우리가 쓰는 Domain 주소는 모두 IP로 변환되어 데이터를 받아온다. IP로 0.0.0.0는 쓰지 않는다. 입력에서 주어지는 Domain은 영어 알파벳으로 시작하고 알파벳과 숫자 및 마침표로 이루어진 공백이 없는 길이 50이하의 문자열이다.
첫 번째 줄에 쿼리의 개수를 의미하는 정수 Q가 주어진다.
두번째 줄부터 Q개의 줄에 걸쳐, 다음 네 가지 중 한 가지의 쿼리가 들어온다.
URL D I : D라는 Domain의 IP는 I다. (I는 올바른 IP, I ≠ 0.0.0.0)
(URL www.acmicpc.net 104.26.10.18 : www.acmicpc.net의 IP = 104.26.10.18)
IP I S : I라는 IP를 가진 곳에는 S라는 데이터가 있다. (I는 REDIRECT되지 않은 올바른 IP, S는 영어 알파벳과 숫자로 이루어진 공백 없는 길이 10 이하의 문자열)
(IP 104.26.10.18 MINJE : 104.26.10.18의 데이터 = MINJE)
REDIRECT I1 I2 : I1의 IP를 가진 곳은 이제부터 I2에 연결된다. 이때, I1를 REDIRECT된 IP, I2를 REDIRECT한 IP라고 한다. I1는 REDIRECT되지 않은 IP다. I2의 데이터는 I1의 데이터로 갱신된다. (I1과 I2는 올바른 IP, I1 ≠ 0.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
모든 Domain이 student.gs.hs.kr
입력으로 REDIRECT 쿼리가 들어오지 않음.
Q ≤ 5×103.
추가적인 제약은 없다.
4 URL www.acmicpc.net 104.26.10.18 IP 104.26.10.18 MINJE HTTP www.acmicpc.net HTTP 104.26.10.18
HTTP 200 OK Requested Data : MINJE HTTP 200 OK Requested Data : MINJE
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
HTTP 200 OK Requested Data : IamCoder HTTP 200 OK Requested Data : IamCoder HTTP 200 OK Requested Data : IamCoder
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
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.만 생략되어 있다면 다음과 같은 방법으로 결정한다.
아홉번째 쿼리에서, student.gs.hs.kr의 IP는 선언되어 있지만 그 IP에는 어떠한 데이터도 없으므로 www.student.gs.hs.kr에 연결하여 데이터를 받아옴에 유의하라.
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
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