saiam12   1년 전

예시코드는 다 맞는데 무언가 반례가 있는거 같습니다. 근데 반례가 뭔지 몰라서 혹시 찾아주시면 감사하겠습니다.

'

nahwasa   1년 전

1 ≤ K < N ≤ 500,000

이므로

j=pow(10,n-k-1);

에서 n-k-1은 최대 499998이 될 수 있습니다.

따라서 j가 제대로 표현될 수 없습니다.

saiam12   1년 전

10^2이라고 2자리가 아니고 3자리 인것처럼 10^499998이면 499999자리가 맞지 않나요?

nahwasa   1년 전

int형인 j에 10^499998 이라는 큰 수가 들어갈수가 없습니닷.

nahwasa   1년 전

int형은 2^31-1 까지 표현이 가능해용.

saiam12   1년 전

문제점을 찾은 거같은데 맞는지 봐주시길바랍니다.

지금 char형이 127까지만 저장되어서 그 이상되는건 저장할 수 없고int형이 21억인가?이므로 기껏해야 10자리여서 n=500000이고 k=1인 상황에서는 표현할 수 없는것이고 이를 해결할려면 문자을 붙이는 작업을 해주면 될 것같은데 제가 생각하는게 맞나요?

saiam12   1년 전

아 네네 이제 확인했네요 감사합니다

saiam12   1년 전

뭐 어찌어찌해서 코드작성해서 맞았습니다를 받긴 했는데

if (max==9){
break;
}

위코드가 없으니 시간초과가 나더군요.

saiam12   1년 전

혹시나 안되시는 분들을 위하여 예시를 하나 더 준비했는데

120 4
123813982189081241941284818948189498149184164271641274261231231235325345778658569776756577456452412414242343892482398389

이걸 입력하시면 

83982189081241941284818948189498149184164271641274261231231235325345778658569776756577456452412414242343892482398389

위와 같은 결과가 출력되어야합니다.

댓글을 작성하려면 로그인해야 합니다.