1. Combo (인터렉티브)

닌텐도에서 쓰는 ABXY 4개문자로 문자열을 만들수 있음
출제자는 최대길이가 N인 문자열을 가짐. 단 문자열의 맨 첫글자는 그 문자열 내에서 유일함. ex) ABXYYBYB는 되는데 ABYAX는 A가 두번나와서 안됨
문자열 하나를 인자로 받는 함수를 호출하면 그 문자열의 substring중 출제자의 문자열의 접두사와 겹치는 가장 긴 길이를 반환해줌. 단 이때 던지는 문자열은 4N 길이 이하임
이때 N+2번 이하로 함수를 호출해서 출제자의 문자열을 찾아내야함

2. Seat

N×M 행렬이 있고 0~NM-1의 숫자가 써있음
이때 어떤 크기가 k인 부분행렬을 잡았을때 거기 안에 0~k-1의 숫자가 모두 들어있으면 존나쎈 행렬이라 부를거임
초기 행렬이 주어지고 쿼리가 주어짐
각 쿼리마다 두 사람의 자리를 바꾼 뒤 존나쎈 행렬의 개수를 출력하면 됨.

원 배열의 크기는 백만 이하. 쿼리는 5만번 이하.

3. Werewolf

당신은 인간 모드랑 멍뭉이 모드를 왔다갔다 할 수 있음
무방향 그래프의 각 노드는 0~N-1으로 번호를 가짐
이때 다음 쿼리를 처리해야함(오프라인임)

어떤 노드 A부터 B까지 여행을 할거임.
이때 L과 R이 주어짐.

A에서는 인간 상태, B에서는 멍뭉이 상태여야 함.
A부터 B로 가는 어떤 경로 위에서 변신을 할 수 있음.
이때 변신은 딱 한번 할수 있고 하면 인간에서 멍뭉이로 변하게 됨. A와 B 위에서도 변신이 가능

단 인간은 번호가 L 이상인 정점에서만 다닐 수 있고
멍뭉이는 번호가 R 이하인 정점에서만 다닐 수 있음

이때 A부터 B까지 가는 경로가 존재하는지 출력하면 됨

정점 20만개, 간선 40만개, 쿼리는 20만개임

핫하 죽어라