시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
5 초 512 MB 201 103 94 55.621%

문제

여기 구글에서, 최고의 언어인 구글語스를 소개합니다. 구글語스로 번역하기 위해, 저희들은 메시지의 각 영문자를 다른 영문자로 변환합니다. 이 변환은 일대일이고, 독립적인데, 그 말은 한 가지의 영문자는 항상 동일한 영문자로 변환되며, 서로 다른 영문자는 항상 다른 결과를 출력하게 됩니다. 이 때 영문자는 변환 후에도 그대로일 수도 있으며, 공백(' ')은 항상 그대로 남게 됩니다.

예(라고 쓰는 단서)를 들면, 저희의 멋진 번환 알고리즘은 다음과 같은 변환 기능을 포함하고 있습니다:  'a' -> 'y', 'o' -> 'e', 그리고 'z' -> 'q'입니다. 이 말은 "a zoo"라는 문자열을 "y qee"로 변환하는 것을 의미합니다.

구글語스는 항상 최고의 변환 규칙을 가지고 있으며, 이 규칙은 항상 똑같습니다. 저희는 규칙을 바꿀 생각 또한 없습니다. 각각의 테스트 케이스에 대해서, 저희는 모든 변환 규칙을 보여주지 않을 생각입니다. 하지만 아래의 몇 가지 예시가 도움이 될 수도 있겠군요.

만약 구글語스로 되어 있는 문자열이 주어지만, 해석할 수 있나요?

입력

입력의 첫 번째 줄에는 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄의 문자열 G로 이루어지는데, 이 문자열은 'a'부터 'z'로 구성되어 있으며, 문자열의 시작과 끝에는 띄어쓰기(' ')가 없으며, 단어들 사이에는 단 한 개의 공백(' ')이 주어진다.

조건

  • 1 ≤ T ≤ 30.
  • 문자열 G는 최대 100개의 글자로 이루어져 있다.
  • 어떤 문자열도 일반적인 영어로 해석된다는 보장은 없다.

출력

각 테스트케이스에 대해 "Case #X: S"라는 형식에 맞추어 출력한다.

이 때, X는 테스트케이스 순서이며, S는 문자열 G를 해석한 것이다.

예제 입력 1

3
ejp mysljylc kd kxveddknmc re jsicpdrysi
rbcpc ypc rtcsra dkh wyfrepkym veddknkmkrkcd
de kr kd eoya kw aej tysr re ujdr lkgc jv

예제 출력 1

Case #1: our language is impossible to understand
Case #2: there are twenty six factorial possibilities
Case #3: so it is okay if you want to just give up

힌트

W3sicHJvYmxlbV9pZCI6IjEyNDAwIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiR29vZ2xlXHU4YTllXHVjMmE0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWM1ZWNcdWFlMzAgXHVhZDZjXHVhZTAwXHVjNWQwXHVjMTFjLCBcdWNkNWNcdWFjZTBcdWM3NTggXHVjNWI4XHVjNWI0XHVjNzc4IDxzdHJvbmc+PHN0cm9uZz5cdWFkNmNcdWFlMDBcdThhOWVcdWMyYTQ8XC9zdHJvbmc+PFwvc3Ryb25nPlx1Yjk3YyBcdWMxOGNcdWFjMWNcdWQ1NjlcdWIyYzhcdWIyZTQuIDxzdHJvbmc+PHN0cm9uZz5cdWFkNmNcdWFlMDBcdThhOWVcdWMyYTQ8XC9zdHJvbmc+PFwvc3Ryb25nPlx1Yjg1YyBcdWJjODhcdWM1ZWRcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0LCBcdWM4MDBcdWQ3NmNcdWI0ZTRcdWM3NDAgXHViYTU0XHVjMmRjXHVjOWMwXHVjNzU4IFx1YWMwMSBcdWM2MDFcdWJiMzhcdWM3OTBcdWI5N2MgXHViMmU0XHViOTc4IFx1YzYwMVx1YmIzOFx1Yzc5MFx1Yjg1YyBcdWJjYzBcdWQ2NThcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1Yzc3NCBcdWJjYzBcdWQ2NThcdWM3NDAgXHVjNzdjXHViMzAwXHVjNzdjXHVjNzc0XHVhY2UwLCBcdWIzYzVcdWI5YmRcdWM4MDFcdWM3NzhcdWIzNzAsIFx1YWRmOCBcdWI5ZDBcdWM3NDAgXHVkNTVjIFx1YWMwMFx1YzljMFx1Yzc1OCBcdWM2MDFcdWJiMzhcdWM3OTBcdWIyOTQgXHVkNTZkXHVjMGMxIFx1YjNkOVx1Yzc3Y1x1ZDU1YyBcdWM2MDFcdWJiMzhcdWM3OTBcdWI4NWMgXHViY2MwXHVkNjU4XHViNDE4XHViYTcwLCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1YzYwMVx1YmIzOFx1Yzc5MFx1YjI5NCBcdWQ1NmRcdWMwYzEgXHViMmU0XHViOTc4IFx1YWNiMFx1YWNmY1x1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjOGMgXHViNDI5XHViMmM4XHViMmU0LiBcdWM3NzQgXHViNTRjIFx1YzYwMVx1YmIzOFx1Yzc5MFx1YjI5NCBcdWJjYzBcdWQ2NTggXHVkNmM0XHVjNWQwXHViM2M0IFx1YWRmOFx1YjMwMFx1Yjg1Y1x1Yzc3YyBcdWMyMThcdWIzYzQgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWFjZjVcdWJjMzEoJiMzOTsgJiMzOTspXHVjNzQwIFx1ZDU2ZFx1YzBjMSBcdWFkZjhcdWIzMDBcdWI4NWMgXHViMGE4XHVhYzhjIFx1YjQyOVx1YjJjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA4KFx1Yjc3Y1x1YWNlMCBcdWM0ZjBcdWIyOTQgXHViMmU4XHVjMTFjKVx1Yjk3YyBcdWI0ZTRcdWJhNzQsIFx1YzgwMFx1ZDc2Y1x1Yzc1OCBcdWJhNGJcdWM5YzQgXHViYzg4XHVkNjU4IFx1YzU0Y1x1YWNlMFx1YjlhY1x1Yzk5OFx1Yzc0MCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YmNjMFx1ZDY1OCBcdWFlMzBcdWIyYTVcdWM3NDQgXHVkM2VjXHVkNTY4XHVkNTU4XHVhY2UwIFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNDogJm5ic3A7JiMzOTthJiMzOTsgLSZndDsgJiMzOTt5JiMzOTssICYjMzk7byYjMzk7IC0mZ3Q7ICYjMzk7ZSYjMzk7LCBcdWFkZjhcdWI5YWNcdWFjZTAgJiMzOTt6JiMzOTsgLSZndDsgJiMzOTtxJiMzOTtcdWM3ODVcdWIyYzhcdWIyZTQuIFx1Yzc3NCBcdWI5ZDBcdWM3NDAgJnF1b3Q7YSB6b28mcXVvdDtcdWI3N2NcdWIyOTQgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0ICZxdW90O3kgcWVlJnF1b3Q7XHViODVjIFx1YmNjMFx1ZDY1OFx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NDQgXHVjNzU4XHViYmY4XHVkNTY5XHViMmM4XHViMmU0LjxcL3A+XHJcblxyXG48cD48c3Ryb25nPjxzdHJvbmc+XHVhZDZjXHVhZTAwXHU4YTllXHVjMmE0PFwvc3Ryb25nPjxcL3N0cm9uZz5cdWIyOTQgXHVkNTZkXHVjMGMxIFx1Y2Q1Y1x1YWNlMFx1Yzc1OCBcdWJjYzBcdWQ2NTggXHVhZGRjXHVjZTU5XHVjNzQ0IFx1YWMwMFx1YzljMFx1YWNlMCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1Yzc3NCBcdWFkZGNcdWNlNTlcdWM3NDAgXHVkNTZkXHVjMGMxIFx1YjYxMVx1YWMxOVx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjODAwXHVkNzZjXHViMjk0IFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWJjMTRcdWFmYzAgXHVjMGRkXHVhYzAxIFx1YjYxMFx1ZDU1YyBcdWM1YzZcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYywgXHVjODAwXHVkNzZjXHViMjk0IFx1YmFhOFx1YjRlMCBcdWJjYzBcdWQ2NTggXHVhZGRjXHVjZTU5XHVjNzQ0IFx1YmNmNFx1YzVlY1x1YzhmY1x1YzljMCBcdWM1NGFcdWM3NDQgXHVjMGRkXHVhYzAxXHVjNzg1XHViMmM4XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MgXHVjNTQ0XHViNzk4XHVjNzU4IFx1YmE4NyBcdWFjMDBcdWM5YzAgXHVjNjA4XHVjMmRjXHVhYzAwIFx1YjNjNFx1YzZjMFx1Yzc3NCBcdWI0MjAgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YWNhMFx1YWQ3MFx1YzY5NC48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNTdkIDxzdHJvbmc+PHN0cm9uZz5cdWFkNmNcdWFlMDBcdThhOWVcdWMyYTQ8XC9zdHJvbmc+PFwvc3Ryb25nPlx1Yjg1YyBcdWI0MThcdWM1YjQgXHVjNzg4XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWI5Y2MsIFx1ZDU3NFx1YzExZFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMDk4XHVjNjk0PzxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzU4IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVhYzFjXHVjMjE4IFRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWQ1NWMgXHVjOTA0XHVjNzU4IFx1YmIzOFx1Yzc5MFx1YzVmNCBHXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljMFx1YjI5NFx1YjM3MCwgXHVjNzc0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0MCAmIzM5O2EmIzM5O1x1YmQ4MFx1ZDEzMCAmIzM5O3omIzM5O1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MThcdWM1YjQgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NTggXHVjMmRjXHVjNzkxXHVhY2ZjIFx1YjA1ZFx1YzVkMFx1YjI5NCBcdWI3NDRcdWM1YjRcdWM0ZjBcdWFlMzAoJiMzOTsgJiMzOTspXHVhYzAwIFx1YzVjNlx1YzczY1x1YmE3MCwgXHViMmU4XHVjNWI0XHViNGU0IFx1YzBhY1x1Yzc3NFx1YzVkMFx1YjI5NCBcdWIyZTggXHVkNTVjIFx1YWMxY1x1Yzc1OCBcdWFjZjVcdWJjMzEoJiMzOTsgJiMzOTspXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjODcwXHVhYzc0PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+MSAmbGU7Jm5ic3A7PHN0cm9uZz5UPFwvc3Ryb25nPiZuYnNwOyZsZTsgMzAuPFwvbGk+XHJcblx0PGxpPjxzdHJvbmc+PHN0cm9uZz5cdWJiMzhcdWM3OTBcdWM1ZjQmbmJzcDs8XC9zdHJvbmc+RzxcL3N0cm9uZz5cdWIyOTQgXHVjZDVjXHViMzAwIDEwMFx1YWMxY1x1Yzc1OCBcdWFlMDBcdWM3OTBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNWI0XHViNWE0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1YjNjNCBcdWM3N2NcdWJjMThcdWM4MDFcdWM3NzggXHVjNjAxXHVjNWI0XHViODVjIFx1ZDU3NFx1YzExZFx1YjQxY1x1YjJlNFx1YjI5NCBcdWJjZjRcdWM3YTVcdWM3NDAgXHVjNWM2XHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzQgJnF1b3Q7Q2FzZSAjPHN0cm9uZz5YOiBTPFwvc3Ryb25nPiZxdW90O1x1Yjc3Y1x1YjI5NCBcdWQ2MTVcdWMyZGRcdWM1ZDAgXHViOWRlXHVjZDk0XHVjNWI0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0IFx1YjU0YywgPHN0cm9uZz5YPFwvc3Ryb25nPlx1YjI5NCBcdWQxNGNcdWMyYTRcdWQyYjhcdWNmMDBcdWM3NzRcdWMyYTQgXHVjMjFjXHVjMTFjXHVjNzc0XHViYTcwLCA8c3Ryb25nPlM8XC9zdHJvbmc+XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNCA8c3Ryb25nPkc8XC9zdHJvbmc+XHViOTdjIFx1ZDU3NFx1YzExZFx1ZDU1YyBcdWFjODNcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMTI0MDAiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTcGVha2luZyBpbiBUb25ndWVzIChTbWFsbCkiLCJkZXNjcmlwdGlvbiI6IjxwPldlIGhhdmUgY29tZSB1cCB3aXRoIHRoZSBiZXN0IHBvc3NpYmxlIGxhbmd1YWdlIGhlcmUgYXQgR29vZ2xlLCBjYWxsZWQgR29vZ2xlcmVzZS4gVG8gdHJhbnNsYXRlIHRleHQgaW50byBHb29nbGVyZXNlLCB3ZSB0YWtlIGFueSBtZXNzYWdlIGFuZCByZXBsYWNlIGVhY2ggRW5nbGlzaCBsZXR0ZXIgd2l0aCBhbm90aGVyIEVuZ2xpc2ggbGV0dGVyLiBUaGlzIG1hcHBpbmcgaXMmbmJzcDs8ZW0+b25lLXRvLW9uZTxcL2VtPiZuYnNwO2FuZCZuYnNwOzxlbT5vbnRvPFwvZW0+LCB3aGljaCBtZWFucyB0aGF0IHRoZSBzYW1lIGlucHV0IGxldHRlciBhbHdheXMgZ2V0cyByZXBsYWNlZCB3aXRoIHRoZSBzYW1lIG91dHB1dCBsZXR0ZXIsIGFuZCBkaWZmZXJlbnQgaW5wdXQgbGV0dGVycyBhbHdheXMgZ2V0IHJlcGxhY2VkIHdpdGggZGlmZmVyZW50IG91dHB1dCBsZXR0ZXJzLiBBIGxldHRlciBtYXkgYmUgcmVwbGFjZWQgYnkgaXRzZWxmLiBTcGFjZXMgYXJlIGxlZnQgYXMtaXMuPFwvcD5cclxuXHJcbjxwPkZvciBleGFtcGxlIChhbmQgaGVyZSBpcyBhIGhpbnQhKSwgb3VyIGF3ZXNvbWUgdHJhbnNsYXRpb24gYWxnb3JpdGhtIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgdGhyZWUgbWFwcGluZ3M6ICYjMzk7YSYjMzk7IC0mZ3Q7ICYjMzk7eSYjMzk7LCAmIzM5O28mIzM5OyAtJmd0OyAmIzM5O2UmIzM5OywgYW5kICYjMzk7eiYjMzk7IC0mZ3Q7ICYjMzk7cSYjMzk7LiBUaGlzIG1lYW5zIHRoYXQgJnF1b3Q7YSB6b28mcXVvdDsgd2lsbCBiZWNvbWUgJnF1b3Q7eSBxZWUmcXVvdDsuPFwvcD5cclxuXHJcbjxwPkdvb2dsZXJlc2UgaXMgYmFzZWQgb24gdGhlIGJlc3QgcG9zc2libGUgcmVwbGFjZW1lbnQgbWFwcGluZywgYW5kIHdlIHdpbGwgbmV2ZXIgY2hhbmdlIGl0LiBJdCB3aWxsIGFsd2F5cyBiZSB0aGUgc2FtZS4gSW4gZXZlcnkgdGVzdCBjYXNlLiBXZSB3aWxsIG5vdCB0ZWxsIHlvdSB0aGUgcmVzdCBvZiBvdXIgbWFwcGluZyBiZWNhdXNlIHRoYXQgd291bGQgbWFrZSB0aGUgcHJvYmxlbSB0b28gZWFzeSwgYnV0IHRoZXJlIGFyZSBhIGZldyBleGFtcGxlcyBiZWxvdyB0aGF0IG1heSBoZWxwLjxcL3A+XHJcblxyXG48cD5HaXZlbiBzb21lIHRleHQgaW4gR29vZ2xlcmVzZSwgY2FuIHlvdSB0cmFuc2xhdGUgaXQgdG8gYmFjayB0byBub3JtYWwgdGV4dD88XC9wPlxyXG5cclxuPGgzPlNvbHZpbmcgdGhpcyBwcm9ibGVtPFwvaDM+XHJcblxyXG48cD5Vc3VhbGx5LCBHb29nbGUgQ29kZSBKYW0gcHJvYmxlbXMgaGF2ZSAxIFNtYWxsIGlucHV0IGFuZCAxIExhcmdlIGlucHV0LiBUaGlzIHByb2JsZW0gaGFzIG9ubHkmbmJzcDs8c3Ryb25nPjEgU21hbGwgaW5wdXQ8XC9zdHJvbmc+LiBPbmNlIHlvdSBoYXZlIHNvbHZlZCB0aGUgU21hbGwgaW5wdXQsIHlvdSBoYXZlIGZpbmlzaGVkIHNvbHZpbmcgdGhpcyBwcm9ibGVtLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgdGhlIGlucHV0IGdpdmVzIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcywmbmJzcDs8c3Ryb25nPlQ8XC9zdHJvbmc+LiZuYnNwOzxzdHJvbmc+VDxcL3N0cm9uZz4mbmJzcDt0ZXN0IGNhc2VzIGZvbGxvdywgb25lIHBlciBsaW5lLjxcL3A+XHJcblxyXG48cD5FYWNoIGxpbmUgY29uc2lzdHMgb2YgYSBzdHJpbmcmbmJzcDs8c3Ryb25nPkc8XC9zdHJvbmc+Jm5ic3A7aW4gR29vZ2xlcmVzZSwgbWFkZSB1cCBvZiBvbmUgb3IgbW9yZSB3b3JkcyBjb250YWluaW5nIHRoZSBsZXR0ZXJzICYjMzk7YSYjMzk7IC0gJiMzOTt6JiMzOTsuIFRoZXJlIHdpbGwgYmUgZXhhY3RseSBvbmUgc3BhY2UgKCYjMzk7ICYjMzk7KSBjaGFyYWN0ZXIgYmV0d2VlbiBjb25zZWN1dGl2ZSB3b3JkcyBhbmQgbm8gc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb3IgYXQgdGhlIGVuZCBvZiBhbnkgbGluZS48XC9wPlxyXG5cclxuPGgzPkxpbWl0czxcL2gzPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4xICZsZTsmbmJzcDs8c3Ryb25nPlQ8XC9zdHJvbmc+Jm5ic3A7JmxlOyAzMC48XC9saT5cclxuXHQ8bGk+PHN0cm9uZz5HPFwvc3Ryb25nPiZuYnNwO2NvbnRhaW5zIGF0IG1vc3QgMTAwIGNoYXJhY3RlcnMuPFwvbGk+XHJcblx0PGxpPk5vbmUgb2YgdGhlIHRleHQgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCBFbmdsaXNoLjxcL2xpPlxyXG48XC91bD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggdGVzdCBjYXNlLCBvdXRwdXQgb25lIGxpbmUgY29udGFpbmluZyAmcXVvdDtDYXNlICM8c3Ryb25nPlg8XC9zdHJvbmc+OiZuYnNwOzxzdHJvbmc+UzxcL3N0cm9uZz4mcXVvdDsgd2hlcmUmbmJzcDs8c3Ryb25nPlg8XC9zdHJvbmc+Jm5ic3A7aXMgdGhlIGNhc2UgbnVtYmVyIGFuZCZuYnNwOzxzdHJvbmc+UzxcL3N0cm9uZz4mbmJzcDtpcyB0aGUgc3RyaW5nIHRoYXQgYmVjb21lcyZuYnNwOzxzdHJvbmc+RzxcL3N0cm9uZz4mbmJzcDtpbiBHb29nbGVyZXNlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==

출처

Contest > Google Code Jam > Google Code Jam 2012 > Qualification Round A1번