#55253: cpp_answer


yp11451202@yphs.tp.edu.tw (705-38黃鈺潤)


#include <iostream>
#include <numeric>

using namespace std;

typedef long long ll;

// 使用內建的 __gcd 或自定義 GCD 函數
ll get_gcd(ll a, ll b) {
    while (b) {
        a %= b;
        swap(a, b);
    }
    return a;
}

void solve() {
    ll v1, d1, v2, d2;
    int caseNum = 1;
    
    while (cin >> v1 >> d1 >> v2 >> d2 && (v1 || d1 || v2 || d2)) {
        cout << "Case #" << caseNum++ << ": ";
        
        // 1. 比較誰快 (d1/v1 vs d2/v2) -> 交叉相乘避免浮點數誤差
        if (d1 * v2 < d2 * v1) {
            cout << "You owe me a beer!" << endl;
        } else {
            cout << "No beer for the captain." << endl;
        }
        
        // 2. 平均時間 = (d1/v1 + d2/v2) / 2 = (d1*v2 + d2*v1) / (2*v1*v2)
        ll numerator = d1 * v2 + d2 * v1;
        ll denominator = 2 * v1 * v2;
        
        ll common = get_gcd(numerator, denominator);
        numerator /= common;
        denominator /= common;
        
        cout << "Avg. arrival time: " << numerator;
        if (denominator != 1) {
            cout << "/" << denominator;
        }
        cout << endl;
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    solve();
    return 0;
}