ZeroJudge F754: DD好想哭

DD,全名「Dat Derek」,身高 156.4,體重 89.2 (不過那是幾年前測量的,現在早就破百了…)

身受腳臭困擾的他,平時不愛整潔,牙齒髒了也不刷,滿口的黃牙對他來說是時尚的標誌;

頭髮髒了亂了,也不從來不整理,任憑頭皮屑四處飛揚,像是在散播種子一般。

他也常常被冠上「髒鬼」、「魯蛇」、「人生失敗組」、「肥宅」… 諸如此類的稱號。

然而,他卻有一顆對於愛情充滿嚮往的心。

DD 今天被欺負了,請幫助他討回公道。

DD 的 M 元會被平均分配給 K 人。(0 < K < M < 300000000000)

若除不盡將剩下的錢給最後一個人。

輸出第幾筆的第幾位有多少元並說出「DD! BAD!」。

範例測資

範例輸入範例輸出
第一行會有一個整數 N.
接下來有N筆測資。
每筆測資有M,K兩數。
請輸出第幾筆的第幾位有多少元並說出「DD! BAD!」。
2
1 1
4 3
Case 1 :
第1位 : 拿1元並說DD! BAD!
Case 2 :
第1位 : 拿1元並說DD! BAD!
第2位 : 拿1元並說DD! BAD!
第3位 : 拿2元並說DD! BAD!

解題思路

本題收資料的時候需要使用 Long Long Int,並且 K 有可能會是 0,當K是0時只需要輸出是第幾個Case就可以往下一個Case走了

範例程式碼-ZeroJudge F754: DD好想哭

#include <iostream>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    for (int i = 0; i<N; i++)
    {
        long long int M, K;
        cin >> M >> K;
        cout << "Case " << i+1 << " :\n";
        if (K != 0)
        {
            long long int give = M/K;
            long long int last = 0;
            if (M % K != 0) last = M % K;
            for (int i = 1; i<K; i++)
            {
                cout << "第" << i << "位 : 拿" << give << "元並說DD! BAD!\n";
            }
            cout << "第" << K << "位 : 拿" << give+last << "元並說DD! BAD!\n";
        }
    }
}

//ZeroJudge F754
//Dr. SeanXD

發佈留言