당시에는 모든 사람들이 IPv6 로 전환했습니다 . (권리?)
당신의 임무는 모든 IPv6 주소 를 인쇄 하는 프로그램을 작성하는 것 입니다.
입력을받지 않고 IPv6 주소를 한 줄에 하나씩, 다른 출력을 인쇄하지 않는 전체 프로그램을 작성해야합니다. 프로그램은 유효하지 않은 주소를 포함하여 2128 개의 가능한 주소를 모두 인쇄해야합니다 . 각 주소는 정확히 한 번만 인쇄해야합니다. 주소는 어떤 순서로든 인쇄 할 수 있습니다.
각 주소는 콜론으로 구분 된 4 개의 16 진수로 구성된 8 개의 그룹으로 전체 인쇄 될 수 있습니다. 예 :
2001:0db8:85a3:0000:0000:8a2e:0370:7334
귀하의 재량에 따라 RFC 5952 의 표준 약어를 사용할 수 있습니다 .
- 그룹에서 선행 0은 생략 할 수 있지만
0
더 이상 생략 할 수는 없습니다. ::
는 하나 이상의 모든 0 그룹의 시퀀스를 축약하기 위해 주소 당 최대 한 번만 사용될 수 있습니다.- 16 진수는 소문자 또는 대문자를 사용할 수 있습니다.
당신이 달성되면 RFC 5952에서 표현의 추천 (와 소문자 문자 만 짧은 표현을 ::
일찍 사용할 수 있습니다 여러 위치가있는 경우 가능한 한 사용), 당신은 얻을 -20 %의 보너스를 .
출력 크기로 인해 우리가 앉아있는 동안 프로그램이 완료되지 않을 것으로 예상됩니다. 어느 시점에서 외부 수단에 의해 프로그램이 중단 될 수 있습니다 ( Ctrl+ C, 전원을 끄는 중…). 프로그램은 출력을 스트림으로 생성해야하므로 "합리적인"대기 후에 일부 라인이 생성됩니다. 기본적으로 마지막에 인쇄하기 위해 메모리에 거대한 문자열을 작성하는 것은 허용되지 않습니다. "표준"PC에서 메모리가 부족한 모든 프로그램은 실격 처리됩니다. 그럼에도 불구하고 프로그램을 충분히 오래 실행 한 경우 모든 IPv6 주소를 인쇄 한 다음 종료해야합니다.
(이 조건이 완료 될 때까지 프로그램을 실행 한 다음 출력을 보도록하는 웹 통역사에 문제가있는 경우 호스팅 된 통역사가없는 경우 더 작은 버전의 문제에 대해 프로그램을 테스트 한 후 신중하게 조정하십시오. 전체 2128까지 .)
점수는 프로그램 길이 (바이트)이며 보너스를받는 경우 0.8을 곱한 값입니다. 코드 골프이므로 최저 점수가 이깁니다.