結果
問題 |
No.91 赤、緑、青の石
|
ユーザー |
|
提出日時 | 2025-07-24 14:23:08 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 698 bytes |
コンパイル時間 | 5,978 ms |
コンパイル使用メモリ | 196,136 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-07-24 14:23:16 |
合計ジャッジ時間 | 3,672 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 28 |
ソースコード
module main; // https://kmjp.hatenablog.jp/entry/2014/12/08/0930 より // 二分探索 import std; int R, G, B; // v 個のアクセサリを作れるかどうか bool isOK(int v) { int surplus, deficiency; if (R >= v) surplus += (R - v) / 2; if (G >= v) surplus += (G - v) / 2; if (B >= v) surplus += (B - v) / 2; if (R < v) deficiency += v - R; if (G < v) deficiency += v - G; if (B < v) deficiency += v - B; return surplus >= deficiency; } void main() { // 入力 readln.chomp.formattedRead("%d %d %d", R, G, B); // 答えの計算 int l = 0, r = 10 ^^ 8; while (l + 1 < r) { int m = (l + r) / 2; if (isOK(m)) l = m; else r = m; } // 答えの出力 writeln(l); }