시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB101042837943.463%

문제

평소에 전공 공부를 열심히 하는 황제는 시험기간에 형들이 IPv4, IPv6주소를 저장하는데 각각 최소 4바이트, 6바이트가 필요하다는 얘기를 듣고 아람이에게 질문했다.

  • 황제: "IPv8주소를 저장하는데는 최소 몇 바이트의 공간이 필요할까?"
  • 아람: "당연히 8바이트의 공간이 필요하지"
  • 황제: "아하! 그러면 127.0.0.1이라는 IPv4 주소는 컴퓨터는 모든 수를 이진수로만 저장 하니까 127=01111111, 0=00000000, 0=00000000, 1=00000001로 저장되겠군. 그런데 이 4개의 값은 따로 저장 되는 것이 아니라 하나의 부호가 없는 정수형 변수에 저장되니까 이 변수에는 위 4개의 이진수를 이어 붙인 01111111000000000000000000000001가 저장되겠구나. 음...십진수로 출력하면 2130706433이겠네. "
  • 아람: "응 그렇지"
  • 황제: "그러면 어떤 IPv8주소가 부호가 없는 정수형 변수에 저장 될 때 그 값을 십진수로 바꾸면 어떤 값이 나올까?? 그리고 만약 어떤 부호가 없는 정수를 IPv8 주소로 바꾼다면 어떻게 바꿔줘야 될까?" 
  • 아람: "..... 배고프다.. 밥이나 먹으러 가자!" 

그러자 황제는 고민이 해결될 때까지는 밥을 못 먹으러 간다며 자리를 지킨다. 

여러분이 황제를 도와 아람이와 황제가 점심시간에 맞춰 밥을 먹도록 도와주자.

입력

입력의 첫째 줄에 테스트 케이스 T가 주어진다.

각 테스트 케이스의 첫 줄에는 변환의 종류를 나타내는 값 M과 변환할 값 N이 주어진다.

M은 IPv8 주소를 부호가 없는 정수로 바꾸는 변환이면 1, 부호가 없는 정수를 IPv8 주소로 바꾸는 변환이면 2가 주어진다.

NM이 1일 경우  0~255사이의 정수로 이루어진 IPv8 주소, M이 2일 경우 부호가 없는 정수가 주어진다.

주어지는 부호가 없는 정수의 크기는 64비트 부호가 없는 정수의 범위를 넘어가지 않는다. 

출력

각 테스트 케이스마다 변환된 값을 출력한다.

예제 입력 1

3
1 70.236.217.197.157.238.150.80
2 5110699119940114000
2 0

예제 출력 1

5110699119940114000
70.236.217.197.157.238.150.80
0.0.0.0.0.0.0.0

힌트

실제로는 IPv4와 IPv6은 전혀 다른 포맷을 사용하며, IPv6 주소를 표현하는 데에는 16바이트가 필요합니다. (링크)

출처

University > 인하대학교 > 2016 IUPC 인하대학교 프로그래밍 경진대회 J번

  • 빠진 조건을 찾은 사람: doju
  • 문제를 만든 사람: klight1994