1. doll

3개의 모듈이 있음. 시작점, 스위치, 트리거임. 시작점은 단 1개 존재함.

각 모듈은 입력 단자와 출력 단자가 있음. 모든 모듈의 입력 단자는 무한개이고 출력 단자는 스위치는 2개, 나머지는 1개임. 모듈 사이의 두 단자를 선으로 이을 수 있음. 입력 단자로 구슬이 들어오면 출력 단자로 나감.

시작점과 트리거는 특이사항이 없음.
스위치는 X상태와 Y상태가 있는데 초기에 X상태임. X상태에서 구슬이 한번 들어가면 구슬은 X 출력 단자로 나오고 스위치는 Y상태로 바뀜. Y 상태에서 구슬이 한번 들어가면 구슬은 Y 출력 단자로 나오고 스위치는 X 상태로 바뀜.

목표는 시작점에 구슬을 넣었을 때 구슬이 문제에서 주어지는 순서대로 선을 따라 모든 트리거를 방문할 수 있도록 스위치를 설치하고 선을 잇는 것임. 구슬은 문제에서 주어지는 모든 트리거를 방문한 후에 시작점에 도달해야 하고, 시작점에 방문할 때 모든 스위치는 X 상태로 있어야 함. 스위치의 개수를 적게 할수록 높은 점수를 받을 수 있음.

문제에서는 트리거의 개수와 방문해야 하는 트리거의 번호가 차례대로 주어짐. 한 트리거를 여러번 방문해야 할수도 있음.

2. highway

어떤 연결된 가중치 있는 무방향 그래프가 있음. 간선에는 light와 heavy라는 두 가중치가 있음. heavy>light임이 보장됨. 이 가중치는 모든 간선들에 대해 동일함. 어떠한 정점 S와 T가 존재함. 이는 주어지지 않음. 당신은 프로그램에 Ask라는 내장 함수를 호출해 질문을 할 수 있음. 모든 간선에 대해 heavy/light 여부를 정해 함수에 전달하면 S로부터 T로 가는 최단경로의 길이를 반환해줌. 이때 S와 T를 찾아내야함.

3. Meeting

산이 N개 있음. N개의 산에 각각 한명의 인간이 살고있음. 이 산에는 각각 높이가 있음. 이때 다음 쿼리를 처리해야 함. 오프라인임.
L부터 R까지의 모든 인간을 한 산 x에 모을 것임. 이때 각 개인이 써야 하는 힘은 자신의 위치부터 x까지의 최대 높이임. 이때 반환해야 하는 값은 적절히 x를 정해 L부터 R까지의 사람들이 써야 하는 힘의 총합의 최소값

핫하 죽어라