스케줄
시간 제한2초메모리 제한1024 MB
매주 팀마다 한 명씩 사무실에 나오게 하여, 서로 다른 팀의 모든 두 사람이 만나도록 하면서 만남 사이의 최대 공백을 최소화하는 일정을 구합니다.
문제
ICPC(Institute for Creative Product Combinations)는 서로 관련 없어 보이는 제품이나 기술을 묶는 색다르고 혁신적인 방법을 찾는다. 이런 결합은 새로운 시장을 열고 일자리를 만든다. 최근 성공 사례는 '헤어바치'다. 헤어드라이어에 히바치 그릴 덮개를 붙여, 외출 중에도 뜨거운 음식을 조리할 수 있게 만든 제품이다.
회사에는 두 명으로 이루어진 개의 팀이 있다. 각 팀은 먼저 자기 팀의 제품을 연구한다. 그다음 서로 다른 팀의 구성원이 만나 제품을 결합하는 방법을 탐구한다.
팬데믹 동안 ICPC 경영진은 사무실에 동시에 명을 넘는 사람이 없도록 전원의 출근 일정을 짰다. 운영이 순조로웠기 때문에, 일상이 회복된 뒤에도 이 방식을 계속 유지했다. 방식은 다음과 같다. 팀에 부터 까지 번호를 붙이고, 번 팀의 두 사람을 과 로 나타낸다. 매주 각 팀에서 정확히 한 명만 사무실에 출근하고, 나머지 한 명은 출근하지 않는다. 과 는 서로를 잘 알고, 떨어져 있어도 생산적으로 협업하므로 사무실에서 만날 필요가 없다. 다만 서로 다른 팀 구성원 사이의 격리는 여전히 문제다.
서로 다른 두 팀 와 ()는 가끔 협업해야 한다. 주 수 가 주어졌을 때, 고정된 팀원 와 가 사무실에서 만나는 주를 라 하자. 이 두 사람의 격리 기간은 의 최댓값이고, 한 번도 만나지 않으면 무한대다. 회사 전체의 격리 기간은 , , , 의 모든 선택에 대한 격리 기간 중 최댓값이다.
주 동안 회사 전체의 격리 기간을 최소화하는 주간 일정을 찾아야 한다.
입력
정수 ()과 ()가 한 줄에 주어진다. 은 팀 수이고, 는 일정을 짤 주 수이다.
출력
개의 팀에서 달성할 수 있는 최소 격리 기간을 한 줄에 출력한다. 어떤 일정으로도 서로 다른 팀의 모든 두 사람이 반드시 만나도록 보장할 수 없으면 infinity를 출력한다. 격리 기간이 유한하면, 이를 달성하는 일정을 줄로 출력한다. 번째 줄은 길이 의 문자열이며, 숫자 1과 2만 사용한다. 번째 문자는 주차에 번 팀의 어느 구성원이 출근하는지를 나타낸다.