시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 36 16 12 42.857%

문제

람세스 2세가 전투에서 승리를 거두고 귀환했다. 그는 승리를 기리기 위해 웅장한 정원을 조성하기로 결심했다. 그래서 궁궐이 있는 Lubrr에서부터 시작해 Karnak 신전에 이르는 긴 길을 따라 식물을 일렬로 쭉 심을 예정이다. 심는 식물은 연꽃(L)과 파피루스(P) 이렇게 단 두 종류이다. 이들은 각각 이집트 북부와 남부의 상징이기 때문이다.

정원에는 그런 식으로 N개의 식물을 심는데, 종류별 식물 배치에 균형이 있어야 한다. 정원 내부의 어떤 연속적인 구간이라도 연꽃과 파피루스의 개수 차이가 2를 넘어서는 안 된다.

람세스가 세우고자 하는 정원은 L 아니면 P로 이루어진 문자열로 나타낼 수 있다. 예를 들어 N=5인 경우 위에서 제시한 균형을 갖춘 정원은 14가지가 있을 수 있다. (LLPLP, LLPPL, LPLLP, LPLPL, LPLPP, LPPLL, LPPLP, PLLPL, PLLPP, PLPLL, PLPLP, PLPPL, PPLLP, PPLPL)

그리고 특정 길이에 대해 균형을 갖춘 정원 식물 배치를 나타내는 문자열들은 알파벳 오름차순으로 나열하여 1부터 번호를 매길 수 있다. 가령 N=5의 경우, 12번에 해당하는 정원 문자열은 PLPPL이다.

길이가 N인 균형 잡힌 정원을 나타내는 어떤 문자열을 입력 받아 이것이 그 길이에 해당하는 전체 균형 잡힌 정원 문자열 중 오름차순으로 몇째 순서에 해당하는지 서열을 구하고, 이 값을 어떤 정수 M으로 나눈 나머지를 출력하는 프로그램을 작성하시오.

이 M이라는 수는 문제 풀이를 더 쉽게 해 주기 위해 있는 것으로, 다른 의미는 없음을 밝힌다.

입력

첫째 줄에는 심을 식물의 수 N이 주어진다. (7 ≤ N ≤ 1,000,000)

둘째 줄에는 정수 M이 주어진다. (7 ≤ M ≤ 10,000,000)

셋째 줄에는 길이가 N이며, L(연꽃)과 P(파피루스)로 이루어진 균형 잡힌 정원을 나타내는 문자열이 주어진다.

출력

0 이상 M 미만의 정수 하나를 출력한다.

입력에서 주어진 정원 문자열의 오름차순 서열을 M으로 나눈 나머지의 값이다.

예제 입력 1

5
7
PLPPL

예제 출력 1

5

예제 입력 2

12
10000
LPLLPLPPLPLL

예제 출력 2

39

힌트

예제 입력에서 PLPPL은 사실 12번째에 있는 정원 배열이다. 그래서 12를 7로 나눈 나머지인 5를 정답으로 한다.

W3sicHJvYmxlbV9pZCI6IjU0NzAiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWFkZTBcdWQ2MTVcdWM3YTFcdWQ3OGMgXHVjOWMxXHVjMTIwXHVkNjE1IFx1YzgxNVx1YzZkMCIsImRlc2NyaXB0aW9uIjoiPHA+XHViNzhjXHVjMTM4XHVjMmE0IDJcdWMxMzhcdWFjMDAgXHVjODA0XHVkMjJjXHVjNWQwXHVjMTFjIFx1YzJiOVx1YjlhY1x1Yjk3YyBcdWFjNzBcdWI0NTBcdWFjZTAgXHVhZGMwXHVkNjU4XHVkNTg4XHViMmU0LiBcdWFkZjhcdWIyOTQgXHVjMmI5XHViOWFjXHViOTdjIFx1YWUzMFx1YjlhY1x1YWUzMCBcdWM3MDRcdWQ1NzQgXHVjNmM1XHVjN2E1XHVkNTVjIFx1YzgxNVx1YzZkMFx1Yzc0NCBcdWM4NzBcdWMxMzFcdWQ1NThcdWFlMzBcdWI4NWMgXHVhY2IwXHVjMmVjXHVkNTg4XHViMmU0LiBcdWFkZjhcdWI3OThcdWMxMWMgXHVhZDgxXHVhZDkwXHVjNzc0IFx1Yzc4OFx1YjI5NCBMdWJyclx1YzVkMFx1YzExY1x1YmQ4MFx1ZDEzMCBcdWMyZGNcdWM3OTFcdWQ1NzQgS2FybmFrIFx1YzJlMFx1YzgwNFx1YzVkMCBcdWM3NzRcdWI5NzRcdWIyOTQgXHVhZTM0IFx1YWUzOFx1Yzc0NCBcdWI1MzBcdWI3N2MgXHVjMmRkXHViYjNjXHVjNzQ0IFx1Yzc3Y1x1YjgyY1x1Yjg1YyBcdWNiNDkgXHVjMmVjXHVjNzQ0IFx1YzYwOFx1YzgxNVx1Yzc3NFx1YjJlNC4gXHVjMmVjXHViMjk0IFx1YzJkZFx1YmIzY1x1Yzc0MCBcdWM1ZjBcdWFmNDMoTClcdWFjZmMgXHVkMzBjXHVkNTNjXHViOGU4XHVjMmE0KFApIFx1Yzc3NFx1YjgwN1x1YWM4YyBcdWIyZTggXHViNDUwIFx1Yzg4NVx1Yjk1OFx1Yzc3NFx1YjJlNC4gXHVjNzc0XHViNGU0XHVjNzQwIFx1YWMwMVx1YWMwMSBcdWM3NzRcdWM5ZDFcdWQyYjggXHViZDgxXHViZDgwXHVjNjQwIFx1YjBhOFx1YmQ4MFx1Yzc1OCBcdWMwYzFcdWM5ZDVcdWM3NzRcdWFlMzAgXHViNTRjXHViYjM4XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM4MTVcdWM2ZDBcdWM1ZDBcdWIyOTQgXHVhZGY4XHViN2YwIFx1YzJkZFx1YzczY1x1Yjg1YyBOXHVhYzFjXHVjNzU4IFx1YzJkZFx1YmIzY1x1Yzc0NCBcdWMyZWNcdWIyOTRcdWIzNzAsIFx1Yzg4NVx1Yjk1OFx1YmNjNCBcdWMyZGRcdWJiM2MgXHViYzMwXHVjZTU4XHVjNWQwIFx1YWRlMFx1ZDYxNVx1Yzc3NCBcdWM3ODhcdWM1YjRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWM4MTVcdWM2ZDAgXHViMGI0XHViZDgwXHVjNzU4IFx1YzViNFx1YjVhNCBcdWM1ZjBcdWMxOGRcdWM4MDFcdWM3NzgmbmJzcDtcdWFkNmNcdWFjMDRcdWM3NzRcdWI3N2NcdWIzYzQgXHVjNWYwXHVhZjQzXHVhY2ZjIFx1ZDMwY1x1ZDUzY1x1YjhlOFx1YzJhNFx1Yzc1OCBcdWFjMWNcdWMyMTggXHVjYzI4XHVjNzc0XHVhYzAwIDJcdWI5N2MgXHViMTE4XHVjNWI0XHVjMTFjXHViMjk0IFx1YzU0OCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yjc4Y1x1YzEzOFx1YzJhNFx1YWMwMCBcdWMxMzhcdWM2YjBcdWFjZTBcdWM3OTAgXHVkNTU4XHViMjk0IFx1YzgxNVx1YzZkMFx1Yzc0MCBMIFx1YzU0NFx1YjJjOFx1YmE3NCBQXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWI4NWMgXHViMDk4XHVkMGMwXHViMGJjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQgTj01XHVjNzc4IFx1YWNiZFx1YzZiMCBcdWM3MDRcdWM1ZDBcdWMxMWMgXHVjODFjXHVjMmRjXHVkNTVjIFx1YWRlMFx1ZDYxNVx1Yzc0NCBcdWFjMTZcdWNkOTggXHVjODE1XHVjNmQwXHVjNzQwIDE0XHVhYzAwXHVjOWMwXHVhYzAwIFx1Yzc4OFx1Yzc0NCBcdWMyMTggXHVjNzg4XHViMmU0LiAoTExQTFAsIExMUFBMLCBMUExMUCwgTFBMUEwsIExQTFBQLCBMUFBMTCwgTFBQTFAsIFBMTFBMLCBQTExQUCwgUExQTEwsIFBMUExQLCBQTFBQTCwgUFBMTFAsIFBQTFBMKTxcL3A+XHJcblxyXG48cD5cdWFkZjhcdWI5YWNcdWFjZTAgXHVkMmI5XHVjODE1IFx1YWUzOFx1Yzc3NFx1YzVkMCBcdWIzMDBcdWQ1NzQgXHVhZGUwXHVkNjE1XHVjNzQ0IFx1YWMxNlx1Y2Q5OCBcdWM4MTVcdWM2ZDAgXHVjMmRkXHViYjNjIFx1YmMzMFx1Y2U1OFx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHViYjM4XHVjNzkwXHVjNWY0XHViNGU0XHVjNzQwIFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWM2MjRcdWI5ODRcdWNjMjhcdWMyMWNcdWM3M2NcdWI4NWMgXHViMDk4XHVjNWY0XHVkNTU4XHVjNWVjIDFcdWJkODBcdWQxMzAgXHViYzg4XHVkNjM4XHViOTdjIFx1YjllNFx1YWUzOCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWFjMDBcdWI4MzkgTj01XHVjNzU4IFx1YWNiZFx1YzZiMCwgMTJcdWJjODhcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1YzgxNVx1YzZkMCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDAgUExQUExcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWUzOFx1Yzc3NFx1YWMwMCBOXHVjNzc4IFx1YWRlMFx1ZDYxNSBcdWM3YTFcdWQ3OGMgXHVjODE1XHVjNmQwXHVjNzQ0IFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWM1YjRcdWI1YTQgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1Yzc4NVx1YjgyNSBcdWJjMWJcdWM1NDQgXHVjNzc0XHVhYzgzXHVjNzc0IFx1YWRmOCBcdWFlMzhcdWM3NzRcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1YzgwNFx1Y2NiNCBcdWFkZTBcdWQ2MTUgXHVjN2ExXHVkNzhjIFx1YzgxNVx1YzZkMCBcdWJiMzhcdWM3OTBcdWM1ZjQgXHVjOTExIFx1YzYyNFx1Yjk4NFx1Y2MyOFx1YzIxY1x1YzczY1x1Yjg1YyBcdWJhODdcdWM5ZjggXHVjMjFjXHVjMTFjXHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NFx1YzljMCBcdWMxMWNcdWM1ZjRcdWM3NDQgXHVhZDZjXHVkNTU4XHVhY2UwLCBcdWM3NzQgXHVhYzEyXHVjNzQ0IFx1YzViNFx1YjVhNCBcdWM4MTVcdWMyMTggTVx1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcblxyXG48cD5cdWM3NzQgTVx1Yzc3NFx1Yjc3Y1x1YjI5NCBcdWMyMThcdWIyOTQgXHViYjM4XHVjODFjIFx1ZDQ4MFx1Yzc3NFx1Yjk3YyBcdWIzNTQgXHVjMjdkXHVhYzhjIFx1ZDU3NCBcdWM4ZmNcdWFlMzAgXHVjNzA0XHVkNTc0IFx1Yzc4OFx1YjI5NCBcdWFjODNcdWM3M2NcdWI4NWMsIFx1YjJlNFx1Yjk3OCBcdWM3NThcdWJiZjhcdWIyOTQgXHVjNWM2XHVjNzRjXHVjNzQ0IFx1YmMxZFx1ZDc4Y1x1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCZuYnNwO1x1YzkwNFx1YzVkMFx1YjI5NCBcdWMyZWNcdWM3NDQgXHVjMmRkXHViYjNjXHVjNzU4IFx1YzIxOCBOXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4mbmJzcDsoNyAmbGU7IE4mbmJzcDsmbGU7IDEsMDAwLDAwMCk8XC9wPlxyXG5cclxuPHA+XHViNDU4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM4MTVcdWMyMTggTVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuJm5ic3A7KDcgJmxlOyBNICZsZTsgMTAsMDAwLDAwMCk8XC9wPlxyXG5cclxuPHA+XHVjMTRiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWFlMzhcdWM3NzRcdWFjMDAgTlx1Yzc3NFx1YmE3MCwgTChcdWM1ZjBcdWFmNDMpXHVhY2ZjIFAoXHVkMzBjXHVkNTNjXHViOGU4XHVjMmE0KVx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgXHVhZGUwXHVkNjE1IFx1YzdhMVx1ZDc4YyBcdWM4MTVcdWM2ZDBcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+MCBcdWM3NzRcdWMwYzEgTSBcdWJiZjhcdWI5Y2NcdWM3NTggXHVjODE1XHVjMjE4IFx1ZDU1OFx1YjA5OFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc4NVx1YjgyNVx1YzVkMFx1YzExYyZuYnNwO1x1YzhmY1x1YzViNFx1YzljNCZuYnNwO1x1YzgxNVx1YzZkMCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NTggXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjIFx1YzExY1x1YzVmNFx1Yzc0NCBNXHVjNzNjXHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWM3NTggXHVhYzEyXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5cdWM2MDhcdWM4MWMgXHVjNzg1XHViODI1XHVjNWQwXHVjMTFjIFBMUFBMXHVjNzQwIFx1YzBhY1x1YzJlNCAxMlx1YmM4OFx1YzlmOFx1YzVkMCBcdWM3ODhcdWIyOTQgXHVjODE1XHVjNmQwIFx1YmMzMFx1YzVmNFx1Yzc3NFx1YjJlNC4gXHVhZGY4XHViNzk4XHVjMTFjIDEyXHViOTdjIDdcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yzc3OCA1XHViOTdjIFx1YzgxNVx1YjJmNVx1YzczY1x1Yjg1YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiI1NDcwIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiTGluZWFyIEdhcmRlbiIsImRlc2NyaXB0aW9uIjoiPHA+UmFtZXNzZXMgSUkgaGFzIGp1c3QgcmV0dXJuZWQgdmljdG9yaW91cyBmcm9tIGJhdHRsZS4gVG8gY29tbWVtb3JhdGUgaGlzIHZpY3RvcnksIGhlIGhhcyBkZWNpZGVkIHRvIGJ1aWxkIGEgbWFqZXN0aWMgZ2FyZGVuLiBUaGUgZ2FyZGVuIHdpbGwgY29udGFpbiBhIGxvbmcgbGluZSBvZiBwbGFudHMgdGhhdCB3aWxsIHJ1biBhbGwgdGhlIHdheSBmcm9tIGhpcyBwYWxhY2UgYXQgTHV4b3IgdG8gdGhlIHRlbXBsZSBvZiBLYXJuYWsuIEl0IHdpbGwgY29uc2lzdCBvbmx5IG9mIGxvdHVzIHBsYW50cyBhbmQgcGFweXJ1cyBwbGFudHMsIHNpbmNlIHRoZXkgc3ltYm9saXplIFVwcGVyIGFuZCBMb3dlciBFZ3lwdCByZXNwZWN0aXZlbHkuICZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGUgZ2FyZGVuIG11c3QgY29udGFpbiBleGFjdGx5IE4gcGxhbnRzLiBBbHNvLCBpdCBtdXN0IGJlIGJhbGFuY2VkOiBpbiBhbnkgY29udGlndW91cyBzZWN0aW9uIG9mIHRoZSBnYXJkZW4sIHRoZSBudW1iZXJzIG9mIGxvdHVzIGFuZCBwYXB5cnVzIHBsYW50cyBtdXN0IG5vdCBkaWZmZXIgYnkgbW9yZSB0aGFuIDIuPFwvcD5cclxuXHJcbjxwPkEgZ2FyZGVuIGNhbiBiZSByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBvZiBsZXR0ZXJzICZsc3F1bztMJnJzcXVvOyAobG90dXMpIGFuZCAmbHNxdW87UCZyc3F1bzsgKHBhcHlydXMpLiBGb3IgZXhhbXBsZSwgZm9yIE49NSB0aGVyZSBhcmUgMTQgcG9zc2libGUgYmFsYW5jZWQgZ2FyZGVucy4gSW4gYWxwaGFiZXRpY2FsIG9yZGVyLCB0aGVzZSBhcmU6IExMUExQLCBMTFBQTCwgTFBMTFAsIExQTFBMLCBMUExQUCwgTFBQTEwsIExQUExQLCBQTExQTCwgUExMUFAsIFBMUExMLCBQTFBMUCwgUExQUEwsIFBQTExQLCBhbmQgUFBMUEwuIFRoZSBwb3NzaWJsZSBiYWxhbmNlZCBnYXJkZW5zIG9mIGEgY2VydGFpbiBsZW5ndGggY2FuIGJlIG9yZGVyZWQgYWxwaGFiZXRpY2FsbHksIGFuZCB0aGVuIG51bWJlcmVkPFwvcD5cclxuXHJcbjxwPnN0YXJ0aW5nIGZyb20gMS4gRm9yIGV4YW1wbGUsIGZvciBOPTUsIGdhcmRlbiBudW1iZXIgMTIgaXMgdGhlIGdhcmRlbiBQTFBQTC4mbmJzcDs8YnIgXC8+XHJcbldyaXRlIGEgcHJvZ3JhbSB0aGF0LCBnaXZlbiB0aGUgbnVtYmVyIG9mIHBsYW50cyBOIGFuZCBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgYSBiYWxhbmNlZCBnYXJkZW4sIGNhbGN1bGF0ZXMgdGhlIG51bWJlciBhc3NpZ25lZCB0byB0aGlzIGdhcmRlbiBtb2R1bG8gc29tZSBnaXZlbiBpbnRlZ2VyIE0uPFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCBmb3Igc29sdmluZyB0aGUgdGFzaywgdGhlIHZhbHVlIG9mIE0gaGFzIG5vIGltcG9ydGFuY2Ugb3RoZXIgdGhhbiBzaW1wbGlmeWluZyBjb21wdXRhdGlvbnMuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5Zb3VyIHByb2dyYW0gbXVzdCByZWFkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IHRoZSBmb2xsb3dpbmcgZGF0YTo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5MaW5lIDEgY29udGFpbnMgdGhlIGludGVnZXIgTiwgdGhlIG51bWJlciBvZiBwbGFudHMgaW4gdGhlIGdhcmRlbi4gKDEgJmxlOyBOICZsZTsgMSwwMDAsMDAwKTxcL2xpPlxyXG5cdDxsaT5MaW5lIDIgY29udGFpbnMgdGhlIGludGVnZXIgTS4gKDcgJmxlOyBNICZsZTsgMTAsMDAwLDAwMCk8XC9saT5cclxuXHQ8bGk+TGluZSAzIGNvbnRhaW5zIGEgc3RyaW5nIG9mIE4gY2hhcmFjdGVycyAmbHNxdW87TCZyc3F1bzsgKGxvdHVzKSBvciAmbHNxdW87UCZyc3F1bzsgKHBhcHlydXMpIHRoYXQgcmVwcmVzZW50cyBhIGJhbGFuY2VkIGdhcmRlbi48XC9saT5cclxuPFwvdWw+XHJcbiIsIm91dHB1dCI6IjxwPllvdXIgcHJvZ3JhbSBtdXN0IHdyaXRlIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQgYSBzaW5nbGUgbGluZSBjb250YWluaW5nIG9uZSBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgTVx1MjAxMDEgKGluY2x1c2l2ZSksIHRoZSBudW1iZXIgYXNzaWduZWQgdG8gdGhlIGdhcmRlbiBkZXNjcmliZWQgaW4gdGhlIGlucHV0LCBtb2R1bG8gTS48XC9wPlxyXG4iLCJoaW50IjoiPHA+VGhlIGFjdHVhbCBudW1iZXIgYXNzaWduZWQgdG8gUExQUEwgaXMgMTIuIFNvLCB0aGUgb3V0cHV0IGlzIDEyIG1vZHVsbyA3LCB3aGljaCBpcyA1LjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d

출처

Olympiad > International Olympiad in Informatics > IOI 2008 4번