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

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

if文

AtCoder ABC 170 A - Five Variables (灰色, 100 点)

これ結構難しいと思うけど、Difficulty 8 なのすごい! 問題へのリンク 問題概要 整数 が与えられる。このうち 1 つだけ 0 がある。 であるような を答えよ。 解法 if 文で 1 個ずつ見ていってもいいが、for 文でまとめて扱った方が楽だと思う。 #include <bits/stdc++.h> u</bits/stdc++.h>…

AtCoder ABC 167 A - Registration (灰色, 100 点)

一見 for 文が必要だが、なしでも解ける 問題へのリンク 問題概要 2 つの文字列 が与えられる。 は より 1 文字多い。 が の末尾に 1 文字追加することで出来上がるものであるかどうかを判定せよ。 解法 の末尾の文字を削除しよう。C++ なら、 T.pop_back();…

AtCoder ABC 166 A - A?C (灰色, 100 点)

if 文の練習問題。 問題へのリンク 問題概要 文字列 が与えられる。 が "ABC" ならば "ARC" を、"ARC" ならば "ABC" を出力せよ。 解法 if 文で処理を分岐しよう。 #include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; if (S == "ABC") cout <</bits/stdc++.h>…

AtCoder ABC 164 A - Sheep and Wolves (灰色, 100 点)

易しい問題だけど、どっちがどっちだけ......となりやすい問題なので、サンプルで確認してから提出しよう! 問題へのリンク 問題概要 2 つの整数 が与えられる。 が 以上であるならば "unsafe" と出力し、そうでなければ "safe" と出力せよ。 解法 問題の意…

AtCoder ABC 162 A - Lucky 7 (灰色, 100 点)

これは文字列で入力を受け取って処理した方が楽! 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の桁の値に 7 が含まれるかどうかを判定せよ。 解法 を整数として処理することもできるが、文字列として受け取った方が楽。 文字列ならば、N[0] と N[1]…

AtCoder ABC 160 A - Coffee (灰色, 100 点)

文字列の index アクセスと、論理演算子「&&」の理解を問う問題。 問題へのリンク 問題概要 長さ 6 の文字列が "coffee" 的であるとは、 3 文字目と 4 文字目が等しい 5 文字目と 6 文字目が等しい という条件をともに満たすことを言います。 与えられた長さ…

AtCoder ABC 158 A - Station and Bus (灰色, 100 点)

ABC-A のスキルではないけど、ソートしてしまうのが楽。 問題へのリンク 問題概要 長さ 3 の文字列 が与えられる。 に含まれる文字は 'A' か 'B' のいずれかである。 この文字列が 'A' と 'B' をともに含むかどうかを判定せよ。 解法 をソートするのが楽だと…

AtCoder ABC 156 A - Beginner (灰色, 100 点)

ちょっとした式変形のスキルも要求される。 問題へのリンク 問題概要 コンテストの参加回数 、表示レーティングは次のようになる。 のとき:内部レーティングに一致する のとき:内部レーティングから を引いた値となる 高橋君のコンテスト参加回数が で表示…

AtCoder ABC 155 A - Poor (灰色, 100 点)

これは結構難しい。いろんな解法がある。 問題へのリンク 問題概要 個の整数 が与えられる。 これらのうち 2 個の値が等しく、残りの 1 個の値がそれらと異なるならば "Yes" を出力せよ。そうでなければ "No" を出力せよ。 解法 ABC-A の前提知識ではないが…

AtCoder ABC 154 A - Remaining Balls (灰色, 100 点)

if 文と文字列の練習 問題へのリンク 問題概要 文字列 の書かれたボールが 個、文字列 の書かれたボールが 個ある。 今、文字列 の書かれたボールを 1 個食べた。 文字列 と書かれたボールが何個ずつ残っているかを答えよ。 制約 または 解法 U == S ならば …

AtCoder ABC 152 A - AC or WA (灰色, 100 点)

現実世界に即した if 文の練習問題。こういうのは面白くていいね! 問題へのリンク 問題概要 個のテストケースのうち、 個の正解した。 AC となるかどうかを判定せよ。 制約 解法 AC となる条件を整理すると「」と書ける。よって、これを if 文で判定すれば…

AtCoder ABC 150 A - 500 Yen Coins (灰色, 100 点)

if 文の練習。 問題へのリンク 問題概要 円玉が 枚ある。 総額が 円以上ならば "Yes" を出力し、そうでなければ "No" を出力せよ。 解法 総額は 500 * K と表せるので、これが X 以上であるかどうかを判定すればよい。 #include <bits/stdc++.h> using namespace std; int m</bits/stdc++.h>…

AtCoder ABC 147 A - Blackjack (灰色, 100 点)

if 文の練習。こういう現実のゲームを題材とした問題は面白いね! 問題へのリンク 問題概要 以上 以下の 3 個の整数が与えられる。 これらの整数の総和が 22 以上ならば "bust"、そうでなければ "win" を出力せよ。 解法 3 個の整数を受け取って、総和が 22 …

AtCoder ABC 146 A - Can't Wait for Holiday (灰色, 100 点)

ちょっと面倒。配列を使えば少し楽できるかもしれない。 問題へのリンク 問題概要 曜日を表す文字列 が与えられる。日曜日が何日後かを求めよ。 (詳細はリンク先を参照) 解法 は 7 通りしかないので、それぞれについて答えを出力していく。 if 文や switch …

AtCoder ABC 144 A - 9x9 (灰色, 100 点)

if 文も練習できる問題。 問題へのリンク 問題概要 2 個の正の整数 が与えられる。 がかけ算九九の中にあるならばその値を答え、ないならば -1 を答えよ。 解法 かけ算九九にあるという条件は、 if (A <= 9 && B <= 9) というように記述できる。 #include <bits/stdc++.h> u</bits/stdc++.h>…

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

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

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 136 A - Transfer (灰色, 100 点)

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

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 127 A - Ferris Wheel (灰色, 100 点)

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

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 120 A - Favorite Sound (灰色, 100 点)

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

AtCoder ABC 119 A - Still TBD (7Q, 灰色, 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 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>…