問題
問題文
高橋くんは $A$ グラムの純金と $B$ グラムの純銀 $(0 \le A, B, 0 < A+B)$ をよく溶かした上で混ぜ合わせ、新たな金属を生成しました。
生成された金属は「純金」「純銀」「合金」のいずれでしょうか?
なお、生成された金属は
・$0<A$ かつ $B=0$ なら「純金」
・$A=0$ かつ $0<B$ なら「純銀」
・$0<A$ かつ $0<B$ なら「合金」
であるとみなします。
制約
・$0 \le A,B \le 100$
・$0 < A+B$
$A,B$ は整数
回答
回答1 (AC)
オリンピックにちなんだ問題ですね。問題文通りにコードにすれば良いでしょう。コードは以下のようになりました。
abc212a-1.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if ( 0<a && b==0 ) {
cout << "Gold" << endl;
} else if ( a==0 && 0<b ) {
cout << "Silver" << endl;
} else {
cout << "Alloy" << endl;
}
}
回答2 (AC)
$A=0, B=0$ はあり得ないので、$B=0$ なら「純金」、$A=0$ なら「純銀」と判別することができます。この考察を用いるとコードはちょっとだけ短くなります。
abc212a-2.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if ( b==0 ) {
cout << "Gold" << endl;
} else if ( a==0 ) {
cout << "Silver" << endl;
} else {
cout << "Alloy" << endl;
}
}
調べたこと
AtCoder の解説 → 公式解説
回答1と同じ方針でした。
リンク
前後の記事
- 前の記事 → AtCoderログ:0049 - AGC 025 A
- 次の記事 → AtCoderログ:0051 - ABC 156 B