시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (하단 참고)512 MB232885241.935%

문제

Bob은 문자열 정렬기를 만들어야한다.

문자열은 영문 알파벳 이외에도 붙임표 ('-')가 들어가는 경우가 있기 때문에 처리가 까다롭다. 이 문제에 한해, 서로 다른 두 문자열 $X$, $Y$의 "사전식" 순서는 아래 규칙에 따라 정한다:

  1. $X$가 $Y$의 접두사인 (prefix) 경우 $X$가 $Y$보다 앞선다. 반대로, $Y$가 $X$의 접두사인 경우 $Y$가 $X$보다 앞선다.
  2. 위 경우에 해당하지 않을 경우: 첫번째 문자부터 시작하여 $X$, $Y$가 처음으로 달라지는 부분이 $i$번째 문자라 하자. $X$의 $i$번째 문자를 $X_i$, $Y$의 $i$번째 문자를 $Y_i$라 했을 때:
    1. 둘 중 하나만 붙임표 ('-')인 경우, 붙임표가 들어간 문자열이 사전순에서 뒤진다. 예를 들어, $X_i$가 붙임표이고 $Y_i$가 붙임표가 아닌 경우, $Y$가 앞선다.
    2. 둘 다 알파벳인 경우, 대소문자를 무시했을 때 서로 다른 알파벳이라면, 알파벳 순서를 따른다. 만약 같은 알파벳이지만 하나만 대문자인 경우 대문자가 들어간 문자열이 사전순에서 앞선다.

예를 들어, 아래와 같은 문자열 쌍을 비교해보자:

  • $X = $"Santa-Mar" 과 $Y = $"Santa-Maria": 이 경우 규칙 1에 따라 $X$가 앞선다. $X$가 $Y$의 접두사이기 때문이다.
  • $X = $"San-Francisco" 와 $Y = $"Santa-Clara": 이 경우 처음 $3$개의 문자는 같지만 $4$번째 문자가 '-'와 't'로 다르다. 규칙 2-1에 따라 $X$가 $Y$에 뒤진다.
  • $X = $"Seoul"과 $Y = $"seoul": 이 경우 규칙 2-2에 따라 "Seoul"이 앞선다.

입력으로 $n$개의 문자열이 주어졌을 때, 위 규칙에 따라 사전식 정렬 후 출력하는 문자열 정렬기를 만들어보자.

입력

첫 줄에 테스트 케이스의 수 $T$가 주어진다.

각 테스트 케이스의 첫 줄에는 $n$이 주어진다. 다음 $n$줄에 걸쳐 각 줄에 문자열이 하나씩 주어진다.

출력

각 테스트 케이스의 정답을 $n$줄에 걸쳐 출력한다. 각 줄에는 사전순으로 정렬된 문자열 하나씩을 순서대로 출력한다.

제한

  • $1 ≤ T ≤ 10$
  • $1 ≤ n ≤ 15\,000$
  • 각 테스트 케이스의 입력으로 주어지는 $n$개의 문자열에 대하여:
    • $1 ≤ $ 문자열의 길이 $ ≤ 50$
    • 문자열은 영문 대문자 ('A'-'Z'), 영문 소문자 ('a'-'z'), 그리고 붙임표 ('-') 만을 포함한다

예제 입력 1

4
3
Aa-
a-A
Aa-
7
San-Francisco
Santa-Clara
Santa-Clarita
San-Luis-Obispo
San-Pedro
Saint-Paul
Saint-Louis
2
Santa-mar
Santa-Mar
3
-
--
---

예제 출력 1

Aa-
Aa-
a-A
Saint-Louis
Saint-Paul
Santa-Clara
Santa-Clarita
San-Francisco
San-Luis-Obispo
San-Pedro
Santa-Mar
Santa-mar
-
--
---

예제 1: "Aa-" 문자열이 두 번 주어졌으므로 두 번 출력해야 한다. "Aa-" 와 "a-A"를 비교하면 첫 글자가 다르므로 규칙 2-2에 따라 "Aa-"가 사전순으로 앞선다.

예제 2: "Saint-Louis" 와 "Saint-Paul" 의 경우 'L' 이 'P' 보다 앞선다.

예제 3: "Santa-Mar" 과 "Santa-mar"의 경우 'M' 이 'm' 보다 앞선다.

예제 4: 추가 설명 없음 (규칙 1 참고)

W3sicHJvYmxlbV9pZCI6IjI1MjA0IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViYjM4XHVjNzkwXHVjNWY0IFx1YzgxNVx1YjgyYyIsImRlc2NyaXB0aW9uIjoiPHA+Qm9iXHVjNzQwIFx1YmIzOFx1Yzc5MFx1YzVmNCBcdWM4MTVcdWI4MmNcdWFlMzBcdWI5N2MgXHViOWNjXHViNGU0XHVjNWI0XHVjNTdjXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDAgXHVjNjAxXHViYjM4IFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWM3NzRcdWM2NzhcdWM1ZDBcdWIzYzQgXHViZDk5XHVjNzg0XHVkNDVjICgmIzM5Ozxjb2RlPi08XC9jb2RlPiYjMzk7KVx1YWMwMCBcdWI0ZTRcdWM1YjRcdWFjMDBcdWIyOTQgXHVhY2JkXHVjNmIwXHVhYzAwIFx1Yzc4OFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHVjYzk4XHViOWFjXHVhYzAwIFx1YWU0Y1x1YjJlNFx1Yjg2ZFx1YjJlNC4gXHVjNzc0IFx1YmIzOFx1YzgxY1x1YzVkMCBcdWQ1NWNcdWQ1NzQsIFx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHViNDUwIFx1YmIzOFx1Yzc5MFx1YzVmNCAkWCQsICRZJFx1Yzc1OCAmcXVvdDtcdWMwYWNcdWM4MDRcdWMyZGQmcXVvdDsgXHVjMjFjXHVjMTFjXHViMjk0IFx1YzU0NFx1Yjc5OCBcdWFkZGNcdWNlNTlcdWM1ZDAgXHViNTMwXHViNzdjIFx1YzgxNVx1ZDU1Y1x1YjJlNDo8XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT4kWCRcdWFjMDAgJFkkXHVjNzU4IFx1YzgxMVx1YjQ1MFx1YzBhY1x1Yzc3OCAocHJlZml4KSBcdWFjYmRcdWM2YjAgJFgkXHVhYzAwICRZJFx1YmNmNFx1YjJlNCBcdWM1NWVcdWMxMjBcdWIyZTQuIFx1YmMxOFx1YjMwMFx1Yjg1YywgJFkkXHVhYzAwICRYJFx1Yzc1OCBcdWM4MTFcdWI0NTBcdWMwYWNcdWM3NzggXHVhY2JkXHVjNmIwICRZJFx1YWMwMCAkWCRcdWJjZjRcdWIyZTQgXHVjNTVlXHVjMTIwXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3MDQgXHVhY2JkXHVjNmIwXHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWM3NDQgXHVhY2JkXHVjNmIwOiBcdWNjYWJcdWJjODhcdWM5ZjggXHViYjM4XHVjNzkwXHViZDgwXHVkMTMwIFx1YzJkY1x1Yzc5MVx1ZDU1OFx1YzVlYyAkWCQsICRZJFx1YWMwMCBcdWNjOThcdWM3NGNcdWM3M2NcdWI4NWMgPGVtPlx1YjJlY1x1Yjc3Y1x1YzljMFx1YjI5NCBcdWJkODBcdWJkODRcdWM3NzQ8XC9lbT4gJGkkXHViYzg4XHVjOWY4IFx1YmIzOFx1Yzc5MFx1Yjc3YyBcdWQ1NThcdWM3OTAuICRYJFx1Yzc1OCAkaSRcdWJjODhcdWM5ZjggXHViYjM4XHVjNzkwXHViOTdjICRYX2kkLCAkWSRcdWM3NTggJGkkXHViYzg4XHVjOWY4IFx1YmIzOFx1Yzc5MFx1Yjk3YyAkWV9pJFx1Yjc3YyBcdWQ1ODhcdWM3NDQgXHViNTRjOlxyXG5cdDxvbD5cclxuXHRcdDxsaT5cdWI0NTggXHVjOTExIFx1ZDU1OFx1YjA5OFx1YjljYyBcdWJkOTlcdWM3ODRcdWQ0NWMgKCYjMzk7PGNvZGU+LTxcL2NvZGU+JiMzOTspXHVjNzc4IFx1YWNiZFx1YzZiMCwgXHViZDk5XHVjNzg0XHVkNDVjXHVhYzAwIFx1YjRlNFx1YzViNFx1YWMwNCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHVjMGFjXHVjODA0XHVjMjFjXHVjNWQwXHVjMTFjIFx1YjRhNFx1YzljNFx1YjJlNC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgJFhfaSRcdWFjMDAgXHViZDk5XHVjNzg0XHVkNDVjXHVjNzc0XHVhY2UwICRZX2kkXHVhYzAwIFx1YmQ5OVx1Yzc4NFx1ZDQ1Y1x1YWMwMCBcdWM1NDRcdWIyY2MgXHVhY2JkXHVjNmIwLCAkWSRcdWFjMDAgXHVjNTVlXHVjMTIwXHViMmU0LjxcL2xpPlxyXG5cdFx0PGxpPlx1YjQ1OCBcdWIyZTQgXHVjNTRjXHVkMzBjXHViY2IzXHVjNzc4IFx1YWNiZFx1YzZiMCwgXHViMzAwXHVjMThjXHViYjM4XHVjNzkwXHViOTdjIFx1YmIzNFx1YzJkY1x1ZDU4OFx1Yzc0NCBcdWI1NGMgXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3OCBcdWM1NGNcdWQzMGNcdWJjYjNcdWM3NzRcdWI3N2NcdWJhNzQsIFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWMyMWNcdWMxMWNcdWI5N2MgXHViNTMwXHViOTc4XHViMmU0LiBcdWI5Y2NcdWM1N2QgXHVhYzE5XHVjNzQwIFx1YzU0Y1x1ZDMwY1x1YmNiM1x1Yzc3NFx1YzljMFx1YjljYyBcdWQ1NThcdWIwOThcdWI5Y2MgXHViMzAwXHViYjM4XHVjNzkwXHVjNzc4IFx1YWNiZFx1YzZiMCBcdWIzMDBcdWJiMzhcdWM3OTBcdWFjMDAgXHViNGU0XHVjNWI0XHVhYzA0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWMwYWNcdWM4MDRcdWMyMWNcdWM1ZDBcdWMxMWMgXHVjNTVlXHVjMTIwXHViMmU0LjxcL2xpPlxyXG5cdDxcL29sPlxyXG5cdDxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWY0IFx1YzMwZFx1Yzc0NCBcdWJlNDRcdWFkNTBcdWQ1NzRcdWJjZjRcdWM3OTA6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JFggPSAkJnF1b3Q7PGNvZGU+U2FudGEtTWFyPFwvY29kZT4mcXVvdDsgXHVhY2ZjICRZID0gJCZxdW90Ozxjb2RlPlNhbnRhLU1hcmlhPFwvY29kZT4mcXVvdDs6IFx1Yzc3NCBcdWFjYmRcdWM2YjAgXHVhZGRjXHVjZTU5IDFcdWM1ZDAgXHViNTMwXHViNzdjICRYJFx1YWMwMCBcdWM1NWVcdWMxMjBcdWIyZTQuICRYJFx1YWMwMCAkWSRcdWM3NTggXHVjODExXHViNDUwXHVjMGFjXHVjNzc0XHVhZTMwIFx1YjU0Y1x1YmIzOFx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+JFggPSAkJnF1b3Q7PGNvZGU+U2FuLUZyYW5jaXNjbzxcL2NvZGU+JnF1b3Q7IFx1YzY0MCAkWSA9ICQmcXVvdDs8Y29kZT5TYW50YS1DbGFyYTxcL2NvZGU+JnF1b3Q7OiBcdWM3NzQgXHVhY2JkXHVjNmIwIFx1Y2M5OFx1Yzc0YyAkMyRcdWFjMWNcdWM3NTggXHViYjM4XHVjNzkwXHViMjk0IFx1YWMxOVx1YzljMFx1YjljYyAkNCRcdWJjODhcdWM5ZjggXHViYjM4XHVjNzkwXHVhYzAwICYjMzk7PGNvZGU+LTxcL2NvZGU+JiMzOTtcdWM2NDAgJiMzOTs8Y29kZT50PFwvY29kZT4mIzM5O1x1Yjg1YyBcdWIyZTRcdWI5NzRcdWIyZTQuIFx1YWRkY1x1Y2U1OSAyLTFcdWM1ZDAgXHViNTMwXHViNzdjICRYJFx1YWMwMCAkWSRcdWM1ZDAgXHViNGE0XHVjOWM0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT4kWCA9ICQmcXVvdDs8Y29kZT5TZW91bDxcL2NvZGU+JnF1b3Q7XHVhY2ZjICRZID0gJCZxdW90Ozxjb2RlPnNlb3VsPFwvY29kZT4mcXVvdDs6IFx1Yzc3NCBcdWFjYmRcdWM2YjAgXHVhZGRjXHVjZTU5IDItMlx1YzVkMCBcdWI1MzBcdWI3N2MgJnF1b3Q7PGNvZGU+U2VvdWw8XC9jb2RlPiZxdW90O1x1Yzc3NCBcdWM1NWVcdWMxMjBcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzg1XHViODI1XHVjNzNjXHViODVjICRuJFx1YWMxY1x1Yzc1OCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjNzA0IFx1YWRkY1x1Y2U1OVx1YzVkMCBcdWI1MzBcdWI3N2MgXHVjMGFjXHVjODA0XHVjMmRkIFx1YzgxNVx1YjgyYyBcdWQ2YzQgXHVjZDljXHViODI1XHVkNTU4XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNCBcdWM4MTVcdWI4MmNcdWFlMzBcdWI5N2MgXHViOWNjXHViNGU0XHVjNWI0XHViY2Y0XHVjNzkwLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiIFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzIxOCAkVCRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWNjYWIgXHVjOTA0XHVjNWQwXHViMjk0ICRuJFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YjJlNFx1Yzc0YyAkbiRcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwIFx1YWMwMSBcdWM5MDRcdWM1ZDAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0IFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjODE1XHViMmY1XHVjNzQ0ICRuJFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWFjMDEgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzBhY1x1YzgwNFx1YzIxY1x1YzczY1x1Yjg1YyBcdWM4MTVcdWI4MmNcdWI0MWMgXHViYjM4XHVjNzkwXHVjNWY0IFx1ZDU1OFx1YjA5OFx1YzUyOVx1Yzc0NCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4kMSAmbGU7IFQgJmxlOyAxMCQ8XC9saT5cclxuXHQ8bGk+JDEgJmxlOyBuICZsZTsgMTVcXCwwMDAkPFwvbGk+XHJcblx0PGxpPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTQgJG4kXHVhYzFjXHVjNzU4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1YzVkMCBcdWIzMDBcdWQ1NThcdWM1ZWM6XHJcblx0PHVsPlxyXG5cdFx0PGxpPiQxICZsZTsgJCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NTggXHVhZTM4XHVjNzc0ICQgJmxlOyA1MCQ8XC9saT5cclxuXHRcdDxsaT5cdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDAgXHVjNjAxXHViYjM4IFx1YjMwMFx1YmIzOFx1Yzc5MCAoJiMzOTs8Y29kZT5BPFwvY29kZT4mIzM5Oy0mIzM5Ozxjb2RlPlo8XC9jb2RlPiYjMzk7KSwgXHVjNjAxXHViYjM4IFx1YzE4Y1x1YmIzOFx1Yzc5MCAoJiMzOTs8Y29kZT5hPFwvY29kZT4mIzM5Oy0mIzM5Ozxjb2RlPno8XC9jb2RlPiYjMzk7KSwgXHVhZGY4XHViOWFjXHVhY2UwIFx1YmQ5OVx1Yzc4NFx1ZDQ1YyAoJiMzOTs8Y29kZT4tPFwvY29kZT4mIzM5OykgXHViOWNjXHVjNzQ0IFx1ZDNlY1x1ZDU2OFx1ZDU1Y1x1YjJlNDxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMSI6IjxwPlx1YzYwOFx1YzgxYyAxOiAmcXVvdDs8Y29kZT5BYS08XC9jb2RlPiZxdW90OyBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHViNDUwIFx1YmM4OCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3M2NcdWJiYzBcdWI4NWMgXHViNDUwIFx1YmM4OCBcdWNkOWNcdWI4MjVcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiAmcXVvdDs8Y29kZT5BYS08XC9jb2RlPiZxdW90OyBcdWM2NDAgJnF1b3Q7PGNvZGU+YS1BPFwvY29kZT4mcXVvdDtcdWI5N2MgXHViZTQ0XHVhZDUwXHVkNTU4XHViYTc0IFx1Y2NhYiBcdWFlMDBcdWM3OTBcdWFjMDAgXHViMmU0XHViOTc0XHViYmMwXHViODVjIFx1YWRkY1x1Y2U1OSAyLTJcdWM1ZDAgXHViNTMwXHViNzdjICZxdW90Ozxjb2RlPkFhLTxcL2NvZGU+JnF1b3Q7XHVhYzAwIFx1YzBhY1x1YzgwNFx1YzIxY1x1YzczY1x1Yjg1YyBcdWM1NWVcdWMxMjBcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyAyOiAmcXVvdDs8Y29kZT5TYWludC1Mb3VpczxcL2NvZGU+JnF1b3Q7IFx1YzY0MCZuYnNwOyZxdW90Ozxjb2RlPlNhaW50LVBhdWw8XC9jb2RlPiZxdW90OyBcdWM3NTggXHVhY2JkXHVjNmIwICYjMzk7PGNvZGU+TDxcL2NvZGU+JiMzOTsgXHVjNzc0ICYjMzk7PGNvZGU+UDxcL2NvZGU+JiMzOTsgXHViY2Y0XHViMmU0IFx1YzU1ZVx1YzEyMFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA4XHVjODFjIDM6ICZxdW90Ozxjb2RlPlNhbnRhLU1hcjxcL2NvZGU+JnF1b3Q7IFx1YWNmYyAmcXVvdDs8Y29kZT5TYW50YS1tYXI8XC9jb2RlPiZxdW90O1x1Yzc1OCBcdWFjYmRcdWM2YjAgJiMzOTs8Y29kZT5NPFwvY29kZT4mIzM5OyBcdWM3NzQgJiMzOTs8Y29kZT5tPFwvY29kZT4mIzM5OyBcdWJjZjRcdWIyZTQgXHVjNTVlXHVjMTIwXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNDogXHVjZDk0XHVhYzAwIFx1YzEyNFx1YmE4NSBcdWM1YzZcdWM3NGMgKFx1YWRkY1x1Y2U1OSAxIFx1Y2MzOFx1YWNlMCk8XC9wPlxyXG4ifSx7InByb2JsZW1faWQiOiIyNTIwNCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlNvcnRpbmcgU3RyaW5ncyIsImRlc2NyaXB0aW9uIjoiPHA+Qm9iIG5lZWRzIHRvIGNyZWF0ZSBhIHByb2dyYW0gdGhhdCBzb3J0cyBzdHJpbmdzLjxcL3A+XHJcblxyXG48cD5FYWNoIHN0cmluZyBtYXkgY29udGFpbiBoeXBoZW5zICgmIzM5Ozxjb2RlPi08XC9jb2RlPiYjMzk7KSBpbiBhZGRpdGlvbiB0byBFbmdsaXNoIGFscGhhYmV0cywgd2hpY2ggbWFrZXMgdGhpbmdzIHRyaWNreS4gRm9yIHRoaXMgcHJvYmxlbSwgdGhlICZxdW90O2xleGljb2dyYXBoaWMmbmJzcDtvcmRlciZxdW90OyBiZXR3ZWVuIHR3byBkaXN0aW5jdCBzdHJpbmdzICRYJCBhbmQgJFkkIGlzIGRlZmluZWQgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5JZiBYIGlzIGEgcHJlZml4IG9mICRZJCwgdGhlbiAkWCQgY29tZXMgYmVmb3JlICRZJC4gQ29udmVyc2VseSwgaWYgJFkkIGlzIGEgcHJlZml4IG9mICRYJCwgdGhlbiAkWSQgY29tZXMgYmVmb3JlICRYLiQ8XC9saT5cclxuXHQ8bGk+T3RoZXJ3aXNlOiBMZXQgJGkkIGJlIHN1Y2ggdGhhdCAkWCQgYW5kICRZJCA8ZW0+ZGlmZmVyPFwvZW0+IGZvciB0aGUgZmlyc3QgdGltZSBhdCB0aGUgJGkkLXRoIGNoYXJhY3Rlci48YnIgXC8+XHJcblx0TGV0ICRYX2kkJm5ic3A7YmUgdGhlICRpJC10aCBjaGFyYWN0ZXIgb2YgJFgkIGFuZCAkWV9pJCZuYnNwO2JlIHRoZSAkaSQtdGggY2hhcmFjdGVyIG9mICRZJC5cclxuXHQ8b2w+XHJcblx0XHQ8bGk+SWYgb25seSBvbmUgb2YgdGhlIHR3byBpcyBhIGh5cGhlbiAoJiMzOTs8Y29kZT4tPFwvY29kZT4mIzM5OyksIHRoZSBzdHJpbmcgd2l0aCB0aGUgaHlwaGVuIGNvbWVzIGxhdGVyLiBGb3IgaW5zdGFuY2UsIGlmICRYX2kkJm5ic3A7aXMgYSBoeXBoZW4gYW5kICRZX2kkJm5ic3A7aXMgbm90LCB0aGVuICRZJCBjb21lcyBiZWZvcmUgJFgkLjxcL2xpPlxyXG5cdFx0PGxpPklmIGJvdGggY2hhcmFjdGVycyBhcmUgZGlmZmVyZW50IGFscGhhYmV0cyAod2hpbGUgaWdub3JpbmcgbGV0dGVyIGNhc2UpLCB0aGVuIHRoZSBvcmRlciBmb2xsb3dzIHRoZSBhbHBoYWJldCYjMzk7cyBsZXhpY29ncmFwaGljIG9yZGVyLiBJZiBib3RoIGNoYXJhY3RlcnMgYXJlIHRoZSBzYW1lIGFscGhhYmV0IGJ1dCBvbmx5IGRpZmZlciBpbiBsZXR0ZXIgY2FzZSwgdGhlbiB0aGUgc3RyaW5nIHdpdGggdGhlIHVwcGVyY2FzZSBhbHBoYWJldCBjb21lcyBiZWZvcmUgdGhlIG90aGVyIHN0cmluZy48XC9saT5cclxuXHQ8XC9vbD5cclxuXHQ8XC9saT5cclxuPFwvb2w+XHJcblxyXG48cD5Gb3IgaW5zdGFuY2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgcGFpcnMgb2Ygc3RyaW5nczo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kWCA9ICQmcXVvdDs8Y29kZT5TYW50YS1NYXI8XC9jb2RlPiZxdW90OywmbmJzcDskWSA9ICQmcXVvdDs8Y29kZT5TYW50YS1NYXJpYTxcL2NvZGU+JnF1b3Q7OiBEdWUgdG8gUnVsZSAxLCAkWCQgY29tZXMgYmVmb3JlICRZJCBhcyAkWCQgaXMgYSBwcmVmaXggb2YgJFkkLjxcL2xpPlxyXG5cdDxsaT4kWCA9ICQmcXVvdDs8Y29kZT5TYW4tRnJhbmNpc2NvPFwvY29kZT4mcXVvdDssICRZID0gJCZxdW90Ozxjb2RlPlNhbnRhLUNsYXJhPFwvY29kZT4mcXVvdDs6IFRoZSB0d28gc3RyaW5ncyBkaWZmZXIgYXQgdGhlIDQtdGggY2hhcmFjdGVyICgmIzM5Ozxjb2RlPi08XC9jb2RlPiYjMzk7IHZzICYjMzk7PGNvZGU+dDxcL2NvZGU+JiMzOTspLiZuYnNwO0R1ZSB0byBSdWxlIDItMSwgJFgkIGNvbWVzIGFmdGVyICRZJC48XC9saT5cclxuXHQ8bGk+JFggPSAkJnF1b3Q7PGNvZGU+U2VvdWw8XC9jb2RlPiZxdW90OywmbmJzcDskWSA9ICQmcXVvdDs8Y29kZT5zZW91bDxcL2NvZGU+JnF1b3Q7OiBEdWUgdG8gUnVsZSAyLTIsICZxdW90Ozxjb2RlPlNlb3VsPFwvY29kZT4mcXVvdDsgY29tZXMgYmVmb3JlICZxdW90O3Nlb3VsJnF1b3Q7LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkdpdmVuICRuJCBzdHJpbmdzLCBzb3J0IHRoZSAkbiQgc3RyaW5ncyBhbmQgb3V0cHV0IHRoZW0uPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSB3aWxsIGNvbnRhaW4gJFQkLCB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMuPFwvcD5cclxuXHJcbjxwPkVhY2ggdGVzdCBjYXNlIHdpbGwgY29udGFpbiAkbiQsIHRoZSBudW1iZXIgb2Ygc3RyaW5ncy4gRm9yIHRoZSBuZXh0ICRuJCBsaW5lcywgZWFjaCBsaW5lIHdpbGwgY29udGFpbiBvbmUgc3RyaW5nLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCBlYWNoIHRlc3QgY2FzZSYjMzk7cyBhbnN3ZXIgaW4gJG4kIGxpbmVzIHRoYXQgbXVzdCBjb250YWluIHRoZSAkbiQgc29ydGVkIHN0cmluZ3MsIG9uZSBpbiBlYWNoIGxpbmUuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4kMSAmbGU7IFQgJmxlOyAxMCQ8XC9saT5cclxuXHQ8bGk+JDEgJmxlOyBuJm5ic3A7JmxlOyAxNVxcLDAwMCQ8XC9saT5cclxuXHQ8bGk+V2l0aGluIGVhY2ggdGVzdCBjYXNlLCBmb3IgdGhlIG4gc3RyaW5ncyBpbiB0aGUgY2FzZTpcclxuXHQ8dWw+XHJcblx0XHQ8bGk+JDEgJmxlOyAkIExlbmd0aCBvZiBlYWNoIHN0cmluZyAkICZsZTsgNTAkPFwvbGk+XHJcblx0XHQ8bGk+RWFjaCBzdHJpbmcgd2lsbCBvbmx5IGNvbnRhaW4gdXBwZXJjYXNlIEVuZ2xpc2ggYWxwaGFiZXRzICgmIzM5Ozxjb2RlPkE8XC9jb2RlPiYjMzk7LSYjMzk7PGNvZGU+WjxcL2NvZGU+JiMzOTspLCBsb3dlcmNhc2UgRW5nbGlzaCBhbHBoYWJldHMgKCYjMzk7PGNvZGU+YTxcL2NvZGU+JiMzOTstJiMzOTs8Y29kZT56PFwvY29kZT4mIzM5OyksIGFuZCBoeXBoZW5zICgmIzM5Ozxjb2RlPi08XC9jb2RlPiYjMzk7KS48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5DYXNlIDE6IFRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+QWEtPFwvY29kZT4mcXVvdDsgd2FzIGdpdmVuIHR3aWNlIGluIHRoZSBpbnB1dCwgc28gaXQgbXVzdCBiZSBvdXRwdXQgdHdvIHRpbWVzLiBCZXR3ZWVuICZxdW90Ozxjb2RlPkFhLTxcL2NvZGU+JnF1b3Q7IGFuZCZuYnNwOyZxdW90Ozxjb2RlPmEtQTxcL2NvZGU+JnF1b3Q7LCBkdWUgdG8gUnVsZSAyLTIsICZxdW90Ozxjb2RlPkFhLTxcL2NvZGU+JnF1b3Q7IGNvbWVzIGZpcnN0LjxcL3A+XHJcblxyXG48cD5DYXNlIDI6IEluIGNhc2Ugb2YgJnF1b3Q7PGNvZGU+U2FpbnQtTG91aXM8XC9jb2RlPiZxdW90OyB2cyZuYnNwOyZxdW90Ozxjb2RlPlNhaW50LVBhdWw8XC9jb2RlPiZxdW90OywgJiMzOTs8Y29kZT5MPFwvY29kZT4mIzM5OyBjb21lcyBiZWZvcmUgJiMzOTs8Y29kZT5QPFwvY29kZT4mIzM5Oy48XC9wPlxyXG5cclxuPHA+Q2FzZSAzOiBJbiBjYXNlIG9mICZxdW90Ozxjb2RlPlNhbnRhLU1hcjxcL2NvZGU+JnF1b3Q7IHZzICZxdW90Ozxjb2RlPlNhbnRhLW1hcjxcL2NvZGU+JnF1b3Q7LCAmIzM5Ozxjb2RlPk08XC9jb2RlPiYjMzk7IGNvbWVzIGJlZm9yZSAmIzM5Ozxjb2RlPm08XC9jb2RlPiYjMzk7LjxcL3A+XHJcblxyXG48cD5DYXNlIDQ6IE5vIGZ1cnRoZXIgZXhwbGFuYXRpb24gcHJvdmlkZWQgKHNlZSBSdWxlIDEpLjxcL3A+XHJcbiJ9XQ==

시간 제한

  • Java 8: 2.5 초
  • Python 3: 2.5 초
  • PyPy3: 2.5 초
  • Java 8 (OpenJDK): 2.5 초
  • Java 11: 2.5 초
  • Kotlin (JVM): 2.5 초
  • Java 15: 2.5 초