はまやんはまやんはまやん

hamayanhamayan's blog

Tricky Alchemy [Codeforces Round #456 A]

http://codeforces.com/contest/912/problem/A

ボールを作るが、以下のルールで作れる

  • 黄ボールは黄素材2つ
  • 緑ボールは黄素材1つと青素材1つ
  • 青ボールは青素材3つ

 
手元に黄素材がA個、青素材がB個ある。
黄ボールをx個、緑ボールをy個、青ボールをz個作りたいとき、追加で何個の素材が必要か。

解法

http://codeforces.com/contest/912/submission/33927628

実装するだけなのだが、オーバーフローの可能性があるのでlong longで計算しよう。
もう足りてる場合は差が負になるので、max関数を使うと場合分けしなくていい。

typedef long long ll;
ll A, B, x, y, z;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> A >> B >> x >> y >> z;

    ll ye = x * 2 + y;
    ll bl = y + z * 3;

    ll ans = max(0LL, ye - A) + max(0LL, bl - B);
    cout << ans << endl;
}