けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

ABC-A

AtCoder ABC 143 A - Curtain (灰色, 100 点)

また、関数 max() が使える案件。 問題へのリンク 問題概要 横の長さが であるカーテンレールに、横の長さが であるカーテン 2 枚を設置する。 カーテンレールのうち、カーテンが設置されていない部分の長さの最小値を求めよ。 解法 2 枚のカーテンを重なら…

AtCoder ABC 142 A - Odds of Oddness (灰色, 100 点)

いい感じの複合問題。この時期の ABC-A としては少し難しめ。 問題へのリンク 問題概要 正の整数 が与えられる。 以上 以下の整数をランダムに選ぶとき、それが奇数である確率を求めよ。 解法 以上 以下の 個の整数のうち、奇数の個数を とすると、求める確…

AtCoder ABC 141 A - Weather Prediction (灰色, 100 点)

周期変化の問題 問題へのリンク 問題概要 高橋君の住む街では、天気が "Sunny", "Cloudy", "Rainy" をこの順に周期的に繰り返す。 ある日の天気を表す文字列 が与えられるので、その次の日の天気を表す文字列を出力せよ。 解法 if 文を用いて丁寧に実装しよ…

AtCoder ABC 139 A - Tenki (灰色, 100 点)

こういうのは for 文を使う方が自然だと思う。 問題へのリンク 問題概要 (意訳) 長さが 3 の文字列 が与えられる。 となる の個数を答えよ。 解法 この頃の A 問題は for 文を用いなくても解けると謳っていた。しかし、こういうのは for 文 (あるいは準ずる…

AtCoder ABC 138 A - Red or Not (灰色, 100 点)

if 文の練習問題! 問題へのリンク 問題概要 整数 と文字列 が与えられる。 が 3200 以上ならば を答えて、3200 未満ならば "red" と答えよ。 解法 if 文を用いて処理を分岐すれば OK #include <bits/stdc++.h> using namespace std; int main() { int a; string s; cin >> </bits/stdc++.h>…

AtCoder ABC 137 A - +-x (灰色, 100 点)

関数 max() を使おう! 問題へのリンク 問題概要 整数 が与えられる。 の最大値を答えよ。 解法 関数 max() を使えばよい。 #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; cout << max({A+B, A-B, A*B}) << endl; }</bits/stdc++.h>

AtCoder ABC 136 A - Transfer (灰色, 100 点)

if 文を使うか、関数 max() を使えば OK 問題へのリンク 問題概要 水を入れる容器が 2 つある。 容器 1 には水を ミリリットルまで入れることができ、水が ミリリットル入っている。 容器 2 には水が ミリリットル入っている。 容器 2 から容器 1 に入るだけ…

AtCoder ABC 135 A - Harmony (灰色, 100 点)

これは難しい! 問題へのリンク 問題概要 2 個の整数 が与えられる。 を満たすような整数 が存在すればそれを答えて、存在しない場合には "IMPOSSIBLE" と答えよ。 解法 これは難しい。結論から言えば、 は整数でなくてもよいならば、 の平均値 となる。下図…

AtCoder ABC 134 A - Dodecagon (灰色, 100 点)

これは本当に言われたとおりにやるだけ! 問題へのリンク 問題概要 整数 の値が与えられるので、 の値を答えてください。 解法 標準入力を用いて r の値を受け取り、3 * r * r の値を出力すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { int r; ci</bits/stdc++.h>…

AtCoder ABC 133 A - T or T (灰色, 100 点)

久しぶりの易しい問題! 問題へのリンク 問題概要 電車を使うと 1 人あたり 円かかります。 タクシーを使うと 人で 円かかります。 人で移動する最小料金はいくらか。 解法 A * N B のうちの小さい方を答えれば OK。関数 min() が使える。 #include <bits/stdc++.h> using n</bits/stdc++.h>…

AtCoder ABC 132 A - Fifty-Fifty (灰色, 100 点)

これはだいぶ難しい問題ですね! 問題へのリンク 問題概要 4 文字の文字列 が与えられる。 がちょうど 2 種類の文字からなり、それらの文字がちょうど 2 個ずつあるかどうかを判定せよ。 解法 色んな解法があると思われる。ここでは、 をアルファベット順に…

AtCoder ABC 131 A - Security (灰色, 100 点)

隣接要素を見る問題。それは何気に結構難しいことだとも思う。 問題へのリンク 問題概要 4 文字の文字列が与えられます。 隣り合う文字が等しい箇所が存在するならば "Bad"、そうでなければ "Good" と答えてください。 解法 次のいずれかを満たせば "Bad" と…

AtCoder ABC 130 A - Rounding (灰色, 100 点)

とても易しい if 文の問題 問題へのリンク 問題概要 整数 が与えられる。 が 未満のときは 0、 以上のときは 10 を出力せよ。 解法 が 未満であることは X < A と表せる。if 文を用いて処理を分岐すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { i</bits/stdc++.h>…

AtCoder ABC 129 A - Airplane (灰色, 100 点)

この頃によくあった 3 個の入力をどうのこうのする系! 問題へのリンク 問題概要 3 つの空港 A, B, C がある。 A-B 間の移動の所要時間は B-C 間の移動の所要時間は A-C 間の移動の所要時間は 今、これらの空港を順に訪れる (たとえば、B → A → C)。最短の所…

AtCoder ABC 128 A - Apple Pie (灰色, 100 点)

ちょっと整理が難しい文章題。 問題へのリンク 問題概要 りんごが 個、りんごの欠片が 個ある。 1 個のりんごを砕くと、りんごの欠片が 個できる 2 個のりんごの欠片を使うと、アップルパイが 1 個できる 今ある材料から、最大で何個のアップルパイが作れる…

AtCoder ABC 127 A - Ferris Wheel (灰色, 100 点)

if 文を上手に使おう! 問題へのリンク 問題概要 ある観覧車の利用料金は年齢に応じて次のとおりである。 13 歳以上は 円かかる。 6 歳以上 12 歳以下は 円の半額がかかる。( は偶数) 5 歳以下は無料 歳の高橋君が観覧車に乗るときの利用料金を求めよ。 解法…

AtCodewr ABC 126 A - Changing a Character (灰色, 100 点)

大文字小文字の扱いを考える。 問題へのリンク 問題概要 文字 'A'、'B'、'C' のみからなる長さ の文字列 が与えられる。 この文字列の 文字目を小文字にした文字列を出力せよ。 解法 文字目は S[K-1] と表せる。 文字 S[K-1] が 'A', 'B', 'C' のいずれかで…

AtCoder ABC 125 A - Biscuit Generator (灰色, 100 点)

という表現が何を言っているんだ......と戸惑うかもしれない。これは、要は「ちょうど 秒後」も含むよということを言っている。 問題へのリンク 問題概要 ビスケット起動装置を起動してから、 秒後にそれぞれビスケットを 枚生成する。 起動してから 秒間の…

AtCoder ABC 123 A - Five Antennas (灰色, 100 点)

ちょっと数学的な部分が難しい問題かもしれない。 問題へのリンク 問題概要 5 つのアンテナがこの順に一直線上に並んでいて、それぞれ座標値は () である。 2 つのアンテナは、距離が 以内であるとき、通信できる。 これらのアンテナの組であって、通信でき…

AtCoder ABC 122 A - Double Helix (灰色, 100 点)

文字の問題 問題へのリンク 問題概要 A, C, G, T のいずれかの文字が与えられる。 A と T、C と G がそれぞれ対になる。 与えられた文字に対して、対となる文字を出力せよ。 解法 if 文を使って処理しよう。 #include <bits/stdc++.h> using namespace std; int main() { ch</bits/stdc++.h>…

AtCoder ABC 121 A - White Cells (灰色, 100 点)

過去に似た問題があった。その応用問題と言える。 問題へのリンク 問題概要 の白色のマス目がある。 行と 列を選んで、すべて黒色に塗った。 白色のマス目は何個残るか。 解法 白い部分をかき集めると、 の長方形となる。 #include <bits/stdc++.h> using namespace std; in</bits/stdc++.h>…

AtCoder ABC 120 A - Favorite Sound (灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 買いたいものがある。 円で 1 個買うことができる。 円持っている。 ただし、 個以上は要らない。何個買えるか。 解法 最後の「 個以上は要らない」がなければ、B / A が答えとな…

AtCoder ABC 119 A - Still TBD (灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

AtCoder ABC 118 A - B +/- A (灰色, 100 点)

倍数判定は演算子「%」を用いる! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が の約数ならば の値を出力し、そうでないならば の値を出力せよ。 解法 が の約数 (言い換えると、 が で割り切れる) であるかどうかは、 if (B % A == 0) という…

AtCoder ABC 117 A - Entrance Examination (灰色, 100 点)

設定が結構難しく感じるかもしれない。実際の問いかけはとても簡単。 問題へのリンク 問題概要 世界 B で 時間進む間に、世界 A では 時間進む。 世界 B で 時間進む間に、世界 A では何時間進むかを求めよ。 解法 「世界 B での経過時間」を で割れば、「世…

AtCoder ABC 116 A - Right Triangle (灰色, 100 点)

直角三角形の面積を求める問題。 問題へのリンク 問題概要 ∠ ABC = 90° の直角三角形がある。 辺 AB, BC, CA の長さが与えられるので、直角三角形の面積を求めよ。 解法 直角を挟む二辺は、AB, BC であるから、面積は と計算できる。 実装するときには、整数…

AtCoder ABC 115 A - Christmas Eve Eve Eve (灰色, 100 点)

落ち着いて処理しよう。 問題へのリンク 問題概要 D=25 なら Christmas D=24 なら Christmas Eve D=23 なら Christmas Eve Eve D=22 なら Christmas Eve Eve Eve と出力するプログラムを作ってください。 解法 if-else 文や、switch 文を用いて処理しよう。 …

AtCoder ABC 114 A - 753 (灰色, 100 点)

論理演算子が使えるかが問われる。 問題へのリンク 問題概要 整数 が、7 または 5 または 3 であるかを判定せよ。 解法 if 文を用いればよい。「または」を判定するためには、論理演算子「||」が使える。 #include <bits/stdc++.h> using namespace std; int main() { int X</bits/stdc++.h>…

AtCoder ABC 113 A - Discount Fare (灰色, 100 点)

意外と問題文が読みにくい気もする。 問題へのリンク 問題概要 電車とバスを乗り継いで目的地にいきます。電車の運賃は 円、バスの運賃は 円でした。 ただし、バスの運賃が半額になる特別券を持っていたので使用しました。合計料金はいくらだったでしょうか…

AtCoder ABC 112 A - Programming Education (灰色, 100 点)

最初に入力される値に応じて処理を分岐する問題! 問題へのリンク 問題概要 まず整数 を受け取る のとき:"Hello World" と出力せよ のとき:追加で整数 を入力として受け取り、 の値を出力せよ 解法 の値によって、最終的に受け取る入力の個数が変わる問題…