24h購物| | PChome| 登入
2012-08-16 09:05:19| 人氣864| 回應0 | 上一篇 | 下一篇

[ZJ] a264. 骰子疊疊樂

推薦 0 收藏 0 轉貼0 訂閱站台

內容 :

骰子!疊疊樂!! 

 

 

要怎樣才能用最少的骰子疊成一疊

使得表面的總和恰好為 n 呢 ~

噢你在透明的桌面上,所以最下面的點數也算在表面

輸入說明 :

多組輸入,以EOF作為結束
每組輸入為一個正整數 n (1<=n<=1000000000)

輸出說明 :

一個數字,代表至少要用幾個骰子才能疊出 n
無解請輸出 -1

範例輸入 :

50
7
32

範例輸出 :

3
-1
2

提示 :

32 = (1+2+3+4+6)*2 = 兩顆骰子五對五疊起來 //(1+2+3+4+5) + (1+2+3+5+6)也可以

出處 :

(管理:VacationClub)

很明顯的你會發現中間的骰子是對稱的兩面點數消失, 也就是 7 點,
那麼你可以歸納出 1 顆骰子 21, 2顆骰子 30~40, 3顆 44~54,
範圍都是 10, 而起始的點數公差都是 14


#include <stdio.h>

int main() {
    int n;
    while(scanf("%d", &n) == 1) {
        if(n < 21)  puts("-1");
        else if(n == 21)    puts("1");
        else {
            if(n < 30)  puts("-1");
            else {
                int m = (n-30)/14*14 + 30;
                if(n >= m && n <= m + 10)
                    printf("%d\n", (n-30)/14+2);
                else
                    puts("-1");
            }
        }
    }
    return 0;
}

台長: Morris
人氣(864) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: ZeroJudge |
此分類下一篇:[ZJ][scc強連通元件][Tarjan算法] d197. 11504 - Dominos
此分類上一篇:[ZJ][拓樸] a454: TOI2010 第二題:專案時程

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文