551. Preparing Problem(思維+數學)

窮源溯流發表於2020-11-08

 

 有 n 個專案,有兩個人,第一個人花費 a 時間完成一個專案,第二個人花費 b 時間完成一個專案,但是當某一個人發現專案還未完成時,他會立馬開始做下一個專案,只有完成手頭上的專案時,才會停下來,中間不允許停止

如果硬要模擬的話,考慮到的邊界問題會很麻煩,但是題目的出口最後要麼 a 完成最後一個任務,要麼 b 完成最後一個任務

所以以 a 或 b 為整段考慮,總的時間為他們其中的最大值,因為專案一旦開始無法停下

int main()
{
    IOS;
    int a,b;
    while(cin>>n>>a>>b){
        int ta=0,tb=0;
        while(ta/a+ta/b<n) ta+=a;
        while(tb/a+tb/b<n) tb+=b;
        int all_tim=max(ta,tb);
        int all=ta/a+tb/b;
        cout<<all<<" "<<all_tim<<endl;
    }
    //PAUSE;
    return 0;
}

 

相關文章