본문 바로가기

Solutions/Mr.K's Solution

PKU 2853. Sequence Sum Possibilities. [판정:TLE]


ㅋㅋ 또 TLE입니다 -_-;



첫번째 TLE는 요놈이구요 (Run ID : 5768623)



두번째 TLE는 요놈입니다 -_-; (Run ID : 5781754)




계산해야 하는 수를 M이라고 했을 때

M을 짝수로 나누었을 때는
그 몫이 0.5 단위로 떨어지면 연속된 자연수의 합으로 나타날 가능성이 있는 것이고

M을 홀수로 나누었을 때는
그 몫이 정수로 떨어지면 연속된 자연수의 합으로 나타날 가능성이 있는 것입니다 -_-;

문제에서 예시로 나온 1800의 경우,
인수분해를 하면 2^3 × 3^2 × 5^2 로 분해가 되는데

이 때문에 16으로 나누면 자연스럽게 몫이 0.5 단위로 떨어지게 되고, (112.5)

이 말인 즉슨 112.5 + 112.5 + … + 112.5 (16개) = 1800 과 같은 결과를 줍니다
문제에서 요구하는 것은 연속된 자연수의 합으로 나타낼 수 있는가를 물어보는 것인데

위의 합을 앞부분 8개, 뒷부분 8개로 나누어서
앞부분에서 하나 뒷부분에서 하나를 대응시킨 후, 앞부분에서 0.5단위를 떼서 뒷부분에 붙이면 됩니다


뭔소린고 하니

112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 = 1800
이것을

(112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5) + (112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5 + 112.5) = 1800
이렇게 나누고

(105 + 106 + 107 + 108 + 109 + 110 + 111 + 112) + (113 + 114 + 115 + 116 + 117 + 118 + 119 + 120) = 1800
가운데에서 가까운 놈들끼리 대응시킨 후
각각 0.5, 1.5, 2.5, … 를 떼서 뒷부분에 붙이면 이렇게 됩니다
이러면 문제에서 요구하는 조건에 맞게 되지요 -_-;


홀수로 나눌 때도 1800을 예로 들어보면
일단 3의 배수이니까 3으로 나누어 떨어집니다, 몫은 600이구요

그러면 600 + 600 + 600 = 1800 이 되고, 이것은 곧 599 + 600 + 601 = 1800 을 만들 수 있게 합니다

마찬가지로,
일의 자리가 0이므로 5로 나누어 떨어지겠네요, 몫은 360입니다
이것은 358 + 359 + 360 + 361 + 362 = 1800 을 만들 수 있게 합니다



이런 식으로 찾으면 됩니다만,
위에서 연속된 자연수의 합으로 나타날 가능성이 있다 라고 했습니다 -_-;

위처럼 나누어 떨어져도 문제에서 요구하는 조건에 안맞을 수도 있다는 말이죠 -_-;
그건 직접 찾으시길 ㅋㅋ