시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 44 9 8 20.000%

문제

상근이와 선영이는 장난감 동물을 가지고 재미있게 놀려고 한다. 먼저, 아래 세 가지 게임판 중 하나를 선택한다. 각 게임판은 여러 개의 칸(그림에는 동그라미)으로 이루어져 있고, 각 게임판은 일차원, 이차원, 삼차원 모양이다.

상근이는 N개의 작은 장난감 동물을 칸에 넣는다.

두 칸의 거리는 장난감 동물이 한 칸에서 출발해서 다른 칸으로 도착하는데 필요한 이동의 횟수이다. 장난감 동물은 자신이 있는 칸과 인접한 칸 중 하나로 이동할 수 있다. (각 칸과 인접한 칸은 그림에서 선분으로 이어져 있다)

두 장난감 동물이 서로의 소리를 들으려면 두 칸의 거리가 D보다 작거나 같아야 한다. 게임판의 종류와 각 장난감 동물의 위치, 그리고 D가 주어졌을 때, 서로의 소리를 들을 수 있는 장난감 동물의 쌍의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 네 정수 B, N, D, M이 주어진다.

B는 게임판의 종류이다. (1 ≤ B ≤ 3) 문제 설명의 왼쪽 그림이 1번 게임판, 중간 그림이 2번, 오른쪽 그림이 3번 게임판이다.

N은 장난감 동물의 수이다. (1 ≤ N ≤ 100,000)

D는 두 장난감 동물이 서로의 소리를 들을 수 있는 가장 먼 거리이다. (1 ≤ D ≤ 100,000,000)

M은 게임판의 크기이다. (입력으로 들어올 수 있는 가장 큰 좌표값) B가 1인 경우 M은 최대 75,000,000이고, 2인 경우에는 75,000, 3인 경우에는 75이다.

다음 N개의 줄에는 각 장난감 동물의 좌표가 주어진다. 모든 좌표는 1보다 크거나 같고, M보다 작거나 같은 자연수이다.

같은 칸에 장난감 동물 여러 개가 들어가 있을 수도 있다.

출력

첫째 줄에 서로의 소리를 들을 수 있는 장난감 동물의 쌍의 수를 출력한다.

예제 입력 1

2 5 4 10
5 2
7 2
8 4
6 5
4 4

예제 출력 1

8

힌트

1-2 (거리 2) 
1-4 (거리 4) 
1-5 (거리 3) 
2-3 (거리 3) 
2-4 (거리 4) 
3-4 (거리 3) 
3-5 (거리 4) 
4-5 (거리 3) 

W3sicHJvYmxlbV9pZCI6IjU0NzYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjIiwiZGVzY3JpcHRpb24iOiI8cD5cdWMwYzFcdWFkZmNcdWM3NzRcdWM2NDAgXHVjMTIwXHVjNjAxXHVjNzc0XHViMjk0IFx1YzdhNVx1YjA5Y1x1YWMxMCBcdWIzZDlcdWJiM2NcdWM3NDQgXHVhYzAwXHVjOWMwXHVhY2UwIFx1YzdhY1x1YmJmOFx1Yzc4OFx1YWM4YyBcdWIxODBcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LiBcdWJhM2NcdWM4MDAsIFx1YzU0NFx1Yjc5OCBcdWMxMzggXHVhYzAwXHVjOWMwIFx1YWM4Y1x1Yzc4NFx1ZDMxMCBcdWM5MTEgXHVkNTU4XHViMDk4XHViOTdjIFx1YzEyMFx1ZDBkZFx1ZDU1Y1x1YjJlNC4gXHVhYzAxIFx1YWM4Y1x1Yzc4NFx1ZDMxMFx1Yzc0MCBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzU4IFx1Y2U3OChcdWFkZjhcdWI5YmNcdWM1ZDBcdWIyOTQgXHViM2Q5XHVhZGY4XHViNzdjXHViYmY4KVx1YzczY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVhY2UwLCBcdWFjMDEgXHVhYzhjXHVjNzg0XHVkMzEwXHVjNzQwIFx1Yzc3Y1x1Y2MyOFx1YzZkMCwgXHVjNzc0XHVjYzI4XHVjNmQwLCBcdWMwYmNcdWNjMjhcdWM2ZDAgXHViYWE4XHVjNTkxXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2JvYXJkLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjEzOHB4OyB3aWR0aDo2NDhweFwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWMwYzFcdWFkZmNcdWM3NzRcdWIyOTQgTlx1YWMxY1x1Yzc1OCBcdWM3OTFcdWM3NDAgXHVjN2E1XHViMDljXHVhYzEwIFx1YjNkOVx1YmIzY1x1Yzc0NCBcdWNlNzhcdWM1ZDAgXHViMTIzXHViMjk0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI0NTAgXHVjZTc4XHVjNzU4IFx1YWM3MFx1YjlhY1x1YjI5NCBcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjXHVjNzc0IFx1ZDU1YyBcdWNlNzhcdWM1ZDBcdWMxMWMgXHVjZDljXHViYzFjXHVkNTc0XHVjMTFjIFx1YjJlNFx1Yjk3OCBcdWNlNzhcdWM3M2NcdWI4NWMgXHViM2M0XHVjYzI5XHVkNTU4XHViMjk0XHViMzcwIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWM3NzRcdWIzZDlcdWM3NTggXHVkNjlmXHVjMjE4XHVjNzc0XHViMmU0LiBcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjXHVjNzQwIFx1Yzc5MFx1YzJlMFx1Yzc3NCBcdWM3ODhcdWIyOTQgXHVjZTc4XHVhY2ZjIFx1Yzc3OFx1YzgxMVx1ZDU1YyBcdWNlNzggXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yjg1YyBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gKFx1YWMwMSBcdWNlNzhcdWFjZmMgXHVjNzc4XHVjODExXHVkNTVjIFx1Y2U3OFx1Yzc0MCBcdWFkZjhcdWI5YmNcdWM1ZDBcdWMxMWMgXHVjMTIwXHViZDg0XHVjNzNjXHViODVjIFx1Yzc3NFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQpPFwvcD5cclxuXHJcbjxwPlx1YjQ1MCBcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjXHVjNzc0IFx1YzExY1x1Yjg1Y1x1Yzc1OCBcdWMxOGNcdWI5YWNcdWI5N2MgXHViNGU0XHVjNzNjXHViODI0XHViYTc0IFx1YjQ1MCBcdWNlNzhcdWM3NTggXHVhYzcwXHViOWFjXHVhYzAwIERcdWJjZjRcdWIyZTQgXHVjNzkxXHVhYzcwXHViMDk4IFx1YWMxOVx1YzU0NFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YWM4Y1x1Yzc4NFx1ZDMxMFx1Yzc1OCBcdWM4ODVcdWI5NThcdWM2NDAgXHVhYzAxIFx1YzdhNVx1YjA5Y1x1YWMxMCBcdWIzZDlcdWJiM2NcdWM3NTggXHVjNzA0XHVjZTU4LCBcdWFkZjhcdWI5YWNcdWFjZTAgRFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCZuYnNwO1x1YzExY1x1Yjg1Y1x1Yzc1OCBcdWMxOGNcdWI5YWNcdWI5N2MgXHViNGU0XHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVjN2E1XHViMDljXHVhYzEwIFx1YjNkOVx1YmIzY1x1Yzc1OCBcdWMzMGRcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWIxMjQgXHVjODE1XHVjMjE4IEIsIE4sIEQsIE1cdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5CXHViMjk0IFx1YWM4Y1x1Yzc4NFx1ZDMxMFx1Yzc1OCBcdWM4ODVcdWI5NThcdWM3NzRcdWIyZTQuICgxICZsZTsgQiAmbGU7IDMpIFx1YmIzOFx1YzgxYyBcdWMxMjRcdWJhODVcdWM3NTggXHVjNjdjXHVjYWJkIFx1YWRmOFx1YjliY1x1Yzc3NCAxXHViYzg4IFx1YWM4Y1x1Yzc4NFx1ZDMxMCwgXHVjOTExXHVhYzA0IFx1YWRmOFx1YjliY1x1Yzc3NCAyXHViYzg4LCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVhZGY4XHViOWJjXHVjNzc0IDNcdWJjODggXHVhYzhjXHVjNzg0XHVkMzEwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5OXHVjNzQwIFx1YzdhNVx1YjA5Y1x1YWMxMCBcdWIzZDlcdWJiM2NcdWM3NTggXHVjMjE4XHVjNzc0XHViMmU0LiAoMSAmbGU7IE4gJmxlOyAxMDAsMDAwKTxcL3A+XHJcblxyXG48cD5EXHViMjk0IFx1YjQ1MCBcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjXHVjNzc0IFx1YzExY1x1Yjg1Y1x1Yzc1OCBcdWMxOGNcdWI5YWNcdWI5N2MgXHViNGU0XHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVhYzAwXHVjN2E1IFx1YmEzYyBcdWFjNzBcdWI5YWNcdWM3NzRcdWIyZTQuICgxICZsZTsgRCAmbGU7IDEwMCwwMDAsMDAwKTxcL3A+XHJcblxyXG48cD5NXHVjNzQwIFx1YWM4Y1x1Yzc4NFx1ZDMxMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWM3NzRcdWIyZTQuIChcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHViNGU0XHVjNWI0XHVjNjJjIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVhYzAwXHVjN2E1IFx1ZDA3MCBcdWM4OGNcdWQ0NWNcdWFjMTIpIEJcdWFjMDAgMVx1Yzc3OCBcdWFjYmRcdWM2YjAgTVx1Yzc0MCBcdWNkNWNcdWIzMDAgNzUsMDAwLDAwMFx1Yzc3NFx1YWNlMCwgMlx1Yzc3OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgNzUsMDAwLCAzXHVjNzc4IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCA3NVx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHVjNzRjIE5cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YWMwMSBcdWM3YTVcdWIwOWNcdWFjMTAgXHViM2Q5XHViYjNjXHVjNzU4IFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YmFhOFx1YjRlMCBcdWM4OGNcdWQ0NWNcdWIyOTQgMVx1YmNmNFx1YjJlNCBcdWQwNmNcdWFjNzBcdWIwOTggXHVhYzE5XHVhY2UwLCBNXHViY2Y0XHViMmU0IFx1Yzc5MVx1YWM3MFx1YjA5OCBcdWFjMTlcdWM3NDAgXHVjNzkwXHVjNWYwXHVjMjE4XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMTlcdWM3NDAgXHVjZTc4XHVjNWQwIFx1YzdhNVx1YjA5Y1x1YWMxMCBcdWIzZDlcdWJiM2MgXHVjNWVjXHViN2VjIFx1YWMxY1x1YWMwMCBcdWI0ZTRcdWM1YjRcdWFjMDAgXHVjNzg4XHVjNzQ0IFx1YzIxOFx1YjNjNCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWMxMWNcdWI4NWNcdWM3NTggXHVjMThjXHViOWFjXHViOTdjIFx1YjRlNFx1Yzc0NCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YzdhNVx1YjA5Y1x1YWMxMCBcdWIzZDlcdWJiM2NcdWM3NTggXHVjMzBkXHVjNzU4IFx1YzIxOFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPjEtMiAoXHVhYzcwXHViOWFjIDIpJm5ic3A7PGJyIFwvPlxyXG4xLTQgKFx1YWM3MFx1YjlhYyA0KSZuYnNwOzxiciBcLz5cclxuMS01IChcdWFjNzBcdWI5YWMgMykmbmJzcDs8YnIgXC8+XHJcbjItMyAoXHVhYzcwXHViOWFjIDMpJm5ic3A7PGJyIFwvPlxyXG4yLTQgKFx1YWM3MFx1YjlhYyA0KSZuYnNwOzxiciBcLz5cclxuMy00IChcdWFjNzBcdWI5YWMgMykmbmJzcDs8YnIgXC8+XHJcbjMtNSAoXHVhYzcwXHViOWFjIDQpJm5ic3A7PGJyIFwvPlxyXG40LTUgKFx1YWM3MFx1YjlhYyAzKSZuYnNwOzxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiNTQ3NiIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlBBSVJTIiwiZGVzY3JpcHRpb24iOiI8cD5NaXJrbyBhbmQgU2xhdmtvIGFyZSBwbGF5aW5nIHdpdGggdG95IGFuaW1hbHMuIEZpcnN0LCB0aGV5IGNob29zZSBvbmUgb2YgdGhyZWUgYm9hcmRzIGdpdmVuIGluIHRoZSBmaWd1cmUgYmVsb3cuIEVhY2ggYm9hcmQgY29uc2lzdHMgb2YgY2VsbHMgKHNob3duIGFzIGNpcmNsZXMgaW4gdGhlIGZpZ3VyZSkgYXJyYW5nZWQgaW50byBhIG9uZSwgdHdvIG9yIHRocmVlIGRpbWVuc2lvbmFsIGdyaWQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvYm9hcmQucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTM4cHg7IHdpZHRoOjY0OHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPk1pcmtvIHRoZW4gcGxhY2VzIE4gbGl0dGxlIHRveSBhbmltYWxzIGludG8gdGhlIGNlbGxzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gY2VsbHMgaXMgdGhlIHNtYWxsZXN0IG51bWJlciBvZiBtb3ZlcyB0aGF0IGFuIGFuaW1hbCB3b3VsZCBuZWVkIGluIG9yZGVyIHRvIHJlYWNoIG9uZSBjZWxsIGZyb20gdGhlIG90aGVyLiBJbiBvbmUgbW92ZSwgdGhlIGFuaW1hbCBtYXkgc3RlcCBpbnRvIG9uZSBvZiB0aGUgYWRqYWNlbnQgY2VsbHMgKGNvbm5lY3RlZCBieSBsaW5lIHNlZ21lbnRzIGluIHRoZSBmaWd1cmUpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Ud28gYW5pbWFscyBjYW4gaGVhciBlYWNoIG90aGVyIGlmIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZWlyIGNlbGxzIGlzIGF0IG1vc3QgRC4gU2xhdmtvJiMzOTtzIHRhc2sgaXMgdG8gY2FsY3VsYXRlIGhvdyBtYW55IHBhaXJzIG9mIGFuaW1hbHMgdGhlcmUgYXJlIHN1Y2ggdGhhdCBvbmUgYW5pbWFsIGNhbiBoZWFyIHRoZSBvdGhlci48XC9wPlxyXG5cclxuPHA+V3JpdGUgYSBwcm9ncmFtIHRoYXQsIGdpdmVuIHRoZSBib2FyZCB0eXBlLCB0aGUgbG9jYXRpb25zIG9mIGFsbCBhbmltYWxzLCBhbmQgdGhlIG51bWJlciBELCBmaW5kcyB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcGFpcnMuJm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCBjb250YWlucyBmb3VyIGludGVnZXJzIGluIHRoaXMgb3JkZXI6Jm5ic3A7PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+VGhlIGJvYXJkIHR5cGUgQiAoMSAmbGU7IEIgJmxlOyAzKTsmbmJzcDs8XC9saT5cclxuXHQ8bGk+VGhlIG51bWJlciBvZiBhbmltYWxzIE4gKDEgJmxlOyBOICZsZTsgMTAwIDAwMCk7Jm5ic3A7PFwvbGk+XHJcblx0PGxpPlRoZSBsYXJnZXN0IGRpc3RhbmNlIEQgYXQgd2hpY2ggdHdvIGFuaW1hbHMgY2FuIGhlYXIgZWFjaCBvdGhlciAoMSAmbGU7IEQgJmxlOyAxMDAgMDAwIDAwMCk7Jm5ic3A7PFwvbGk+XHJcblx0PGxpPlRoZSBzaXplIG9mIHRoZSBib2FyZCBNICh0aGUgbGFyZ2VzdCBjb29yZGluYXRlIGFsbG93ZWQgdG8gYXBwZWFyIGluIHRoZSBpbnB1dCk6Jm5ic3A7XHJcblx0PHVsPlxyXG5cdFx0PGxpPldoZW4gQj0xLCBNIHdpbGwgYmUgYXQgbW9zdCA3NSAwMDAgMDAwLiZuYnNwOzxcL2xpPlxyXG5cdFx0PGxpPldoZW4gQj0yLCBNIHdpbGwgYmUgYXQgbW9zdCA3NSAwMDAuJm5ic3A7PFwvbGk+XHJcblx0XHQ8bGk+V2hlbiBCPTMsIE0gd2lsbCBiZSBhdCBtb3N0IDc1LiZuYnNwOzxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkVhY2ggb2YgdGhlIGZvbGxvd2luZyBOIGxpbmVzIGNvbnRhaW5zIEIgaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IHNpbmdsZSBzcGFjZXMsIHRoZSBjb29yZGluYXRlcyBvZiBvbmUgdG95IGFuaW1hbC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RWFjaCBjb29yZGluYXRlIHdpbGwgYmUgYmV0d2VlbiAxIGFuZCBNIChpbmNsdXNpdmUpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Nb3JlIHRoYW4gb25lIGFuaW1hbCBtYXkgb2NjdXB5IHRoZSBzYW1lIGNlbGwuJm5ic3A7PFwvcD5cclxuIiwib3V0cHV0IjoiPHA+T3V0cHV0IHNob3VsZCBjb25zaXN0IG9mIGEgc2luZ2xlIGludGVnZXIsIHRoZSBudW1iZXIgb2YgcGFpcnMgb2YgYW5pbWFscyB0aGF0IGNhbiBoZWFyIGVhY2ggb3RoZXIuJm5ic3A7PFwvcD5cclxuXHJcbjxwPk5vdGU6IHVzZSBhIDY0LWJpdCBpbnRlZ2VyIHR5cGUgdG8gY2FsY3VsYXRlIGFuZCBvdXRwdXQgdGhlIHJlc3VsdCAobG9uZyBsb25nIGluIENcL0MrKywgaW50NjQgaW4gUGFzY2FsKS4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiPHA+VGhlIGVpZ2h0IHBhaXJzIGFyZTombmJzcDs8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4xLTIgKGRpc3RhbmNlIDIpJm5ic3A7PFwvbGk+XHJcblx0PGxpPjEtNCAoZGlzdGFuY2UgNCkmbmJzcDs8XC9saT5cclxuXHQ8bGk+MS01IChkaXN0YW5jZSAzKSZuYnNwOzxcL2xpPlxyXG5cdDxsaT4yLTMgKGRpc3RhbmNlIDMpJm5ic3A7PFwvbGk+XHJcblx0PGxpPjItNCAoZGlzdGFuY2UgNCkmbmJzcDs8XC9saT5cclxuXHQ8bGk+My00IChkaXN0YW5jZSAzKSZuYnNwOzxcL2xpPlxyXG5cdDxsaT4zLTUgKGRpc3RhbmNlIDQpJm5ic3A7PFwvbGk+XHJcblx0PGxpPjQtNSAoZGlzdGFuY2UgMykmbmJzcDs8XC9saT5cclxuPFwvdWw+XHJcbiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d

출처

Olympiad > International Olympiad in Informatics > IOI 2007 5번