UVA-11401 - Triangle Counting
22 Apr 2018
- UVa Online Judge 解題結果請於 Submit 後,參閱 uHunt。
- 如果你有任何建議與指教,歡迎於下方留言一起討論喔!
- 本題選為「20161220 大學程式能力檢定 CPE」題目。
- 相同題目:NCTU-10920
題意概要
題目給定 個長度不同的桿子,其長度分別為 ,,…,,從中選出三個不同的桿子以組成一個三角形,請問共有幾種組合方式?
-
分析:本題為動態規劃 (Dynamic Programming; DP) 的簡單題型。簡單來說,如果要討論使用長度為 ~ 的邊,則是使用長度為 ~ 的邊之情形,再加上使用長度為 的邊之情形,此時 為最長的邊。以下以 為例,三條邊的情形如下表:
第一邊 第二邊 第三邊 情形數 ~ ~ ~ ~ - 由上表可以看出,可以由「等差級數」公式求得 的所有狀況:,,。
- 綜合以上, 的情形數等同於 的情形數再加上 。
- 本題可以先將題目給定範圍的所有情形數都先算出來,再依據輸入印出對應的情形數,要記得使用
long long int
。
Input
The input for each case will have only a single positive integer (). The end of input will be indicated by a case with . This case should not be processed.
Output
For each test case, print the number of distinct triangles you can make.
Sample Input
5
8
0
Sample Output
3
22