ABC 093A – abc of ABC
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
if ((count(s.begin(), s.end(), 'a') == 1)
&& (count(s.begin(), s.end(), 'b') == 1)
&& (count(s.begin(), s.end(), 'c') == 1)) {
cout << "Yes" << endl;
}else {
cout << "No" << endl;
}
}
count関数を使って、a,b,cが文字列に1個だけ含まれる時に”Yes”を出力すればいいですね。
ABC 094A – Cats and Dogs
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, x;
cin >> a >> b >> x;
// a: cat, b:dog or cat
if ((x <= a + b - 1) && (x >= a)) {
cout << "YES" << endl;
}else {
cout << "NO" << endl;
}
}
if文で考慮しなければいけない条件は2つあります。
1. x <= a + b – 1
猫と犬の数を足した、全体の動物の数(a+b)から1を引いたものが、xよりも大きいかを確認します。1を引いているのは、制約でb>1、つまり少なくとも犬は一匹いるので、全体から、1を引いた数が猫の数としてとりうる値となります。
そもそも、右辺よりxが大きい時は、全体の数より、猫の数が多いということなので、成り立つことはありません。
2. x >= a
猫かとりうる数xが、猫の数aよりも大きいかを確認します。
例えば、猫の数aが5匹と確定しているのに、猫の数xが3になることはあり得ませんよね。なので、xはa以上である必要があります。なので、そういった場合を除外しています。
ABC 095A – Something on It
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int topping = count(s.begin(), s.end(), 'o');
cout << 700 + 100 * topping << endl;
}
count関数を使って、oの数を数えて、変数toppingに代入しています。最後にラーメンの値段700にトッピング料(100✖️topping)を足せば良いですね。