ABC175 C - Walking Takahashi에 도전했습니다.
6743 단어 AtCoder파이썬AtCoderBeginnerContest
왠지 이거↓의 유제가 아닌가?
유식자는 최적해를 요구할 수 있겠지만,
나는 1개 1개 경우 나누지 않으면 edge case 를
망라할 수 있는 자신이 없었다.
WalkingTakahashi.py
x,k,d = map(int,input().split())
cnt = abs(x // d)
if x == 0:
if k%2 == 0:
print(0)
else:
print(d)
elif x > 0:
if abs(k-cnt)%2 == 0:
if k < cnt:
print(abs(x-k*d))
else:
print(abs(x-cnt*d))
else:
if k < cnt:
print(abs(x-k*d))
else:
print(min(abs(x-(cnt+1)*d),abs(x-(cnt-1)*d))) # <= ココ
else:
if abs(k-cnt)%2 == 0:
if k < cnt:
print(abs(x+k*d))
else:
print(abs(x+cnt*d))
else:
if k < cnt:
print(abs(x+k*d))
else:
print(min(abs(x+(cnt+1)*d),abs(x+(cnt-1)*d)))# <= ココ
수작업 느낌, 바리 바리 (웃음)
코멘트에 있는 코코 , 기술에 있듯이 cnt+1 or cnt-1 는, 그 때의 상황에 맞추어
최소값을 선택해야합니다. 여기를 알아차릴 때까지 WA를 두 번 당겼다.
더 똑똑하게, 바삭바삭하게 할 수 있게 되고 싶다.
우선은 자력으로 착용하고 안심했다.
Reference
이 문제에 관하여(ABC175 C - Walking Takahashi에 도전했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AKpirion/items/4878e47895185713659f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)