시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 143 | 43 | 38 | 29.688% |
인섭이는 현우가 내준 과제를 시작하려 한다. 하지만 K를 K번 쓰는 작업은 너무 힘든 일이었다. 어떻게 할까 고민하던 중, 인섭이에게 좋은 아이디어가 하나 떠올랐다. K+A (A > 0)가 K+A번 등장하는 문자열을 쓰고, 현우에게 더 큰 수가 더 많이 등장하였기 때문에 원래 과제보다 더욱 어려운 문제를 풀어왔다고 설득하는 것이다. 만약 이 과정에서, 써야 하는 글자수가 L만큼 줄어든다면 인섭이는 L만큼의 만족도를 얻는다.
하지만 인섭이는 현우가 낸 과제를 정확하게 해결하지 않는 데에 양심의 가책을 느낀다. 만약 인섭이가 K를 K번 쓰는 대신 K+A를 K+A번 적는다면, A에 비례하여 양심의 가책을 느끼게 된다. 정확히는, 어떤 상수 C에 대해 C*A만큼의 양심의 가책을 느낀다.
인섭이는 얻은 만족도에서 양심의 가책을 뺀 값을 최대화하려 한다. 이 값이 얼마인지 찾아주도록 하자.
인섭이가 작성할 문자열에는 수가 겹쳐서 등장할 수도 있다. 예를 들어, 문자열 12312312에는 12312가 2번 등장하며, 333333에는 3333이 3번 등장한다.
문제에 설명한 K, C가 공백으로 구분되어 주어진다. (1 ≤ K ≤ 1012, 0 ≤ C ≤ 105)
문제의 정답을 출력한다. 만약 모든 양수 A에 대해 답이 0 이하라면 0을 출력한다.
10 2
6
1번 예제에서, 10을 10번 쓰게되면 총 20글자를 써야 한다. 하지만 11을 11번 쓰게되면 총 12글자를 쓰게 되고, 이 경우 만족도는 8, 양심의 가책은 (11-10) * 2가 되어 정답은 8 - 2 = 6 이 된다.
University > 연세대학교 > 2018 연세대학교 컴퓨터과학과 프로그래밍 경진대회 K번