ABC 081A – Placing Marbles
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
string n;
cin >> n;
cout << count(n.begin(), n.end(), '1') << endl;
}
countは文字列にしか使えないので注意です。
ABC 082A – Round Up the Mean
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
float a, b;
cin >> a >> b;
int x = round((a + b) / 2);
cout << x << endl;
}
変数の型の指定をfloatにしています。intを使ってしまうと、roundを使う前に数字が丸まってしまうので、うまくいきません。
round関数
四捨五入をします。標準ライブラリ関数です。
例えば、小数点第2位で四捨五入をしたい時は以下のように書きます。
std::cout << std::round(3.154 * 100) / 100 << std::endl;
ABC 083A – Libra
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
if (a + b > c + d){
cout << "Left" <<endl;
}else if (a + b < c + d){
cout << "Right" <<endl;
}else {
cout << "Balanced" <<endl;
}
}
a+bとc+dを比べればいいですね。
ABC 084A – New Year
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
cout << (24 - n) + 24 << endl;
}
24からnを引いて、31日分の24時間を足してあげればいいですね。
ABC 085A – Already 2018
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
cout << s.replace(3, 1, "8") << endl;
}
replace関数
文字列を置き換えることができます。
str.replace(開始位置, 長さ, 文字列)
という形で使います。
以前使った時は、正規表現を用いていましたが、正規表現ではなく、位置を指定して使うこともできます。
ABC 086A – Product
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
if( (a * b) % 2 == 0){
cout << "Even" << endl;
}else{
cout << "Odd" << endl;
}
}
AtCoder Beginners Selectionでも解きましたね。
ABC 087A – Buying Sweets
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a, b;
cin >> n >> a >> b;
cout << (n - a) % b << endl;
}
一見複雑そうに見えますが、紐解くとそんなことはありません。
最初に、a円のケーキを1個買うので、nからaを引きます。そして、その余った金額をbで割り、その余りを出力すれば答えとなります。余りを出力するには%を使います。
ABC 088A – Infinite Coins
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a;
cin >> n >> a;
if (n % 500 <= a){
cout << "Yes" << endl;
}else {
cout << "No" << endl;
}
}
500円玉は無限に持っているので、まずは金額nを500で割ってしまいます。その余りのを1円玉で払うことになるので、余りと1円玉の枚数aを比べて、aの方が大きかったら、払えるので”Yes”を出力すれば良いですね。
ABC 089A – Grouping 2
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
cout << n / 3 << endl;
}
生徒の数nを3で割った答えを出力すれば良いですね。
ABC 090A – Diagonal String
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
string a, b, c;
cin >> a >> b >> c;
cout << a[0] << b[1] << c[2] << endl;
}
それぞれの行をa,b,cに振り分けて、該当する番号のところを出力すれば良いですね。