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

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

AtCoder

AtCoder ABC 172 A - Calc (灰色, 100 点)

算数の素養は必要なく、ただ本当に計算式を実装する。 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 解法 とは、 のことである。また、 とは、 のことである。 よって、 a + a * a + a * a * a の値を出力すればよい。 #include <bits/stdc++.h> using na</bits/stdc++.h>…

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

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

AtCoder ABC 169 A - Multiplication 1 (灰色, 100 点)

ABC の中でトップクラスに易しい問題 問題へのリンク 問題概要 2 個の整数 が与えられる。 の値を出力せよ。 解法 A * B を出力すればよい。 #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; cout << A * B << endl; }</bits/stdc++.h>

AtCoder ABC 168 A - ∴ (Therefore) (灰色, 100 点)

ちょっと一見面倒な問題。 問題へのリンク 問題概要 999 以下の正の整数 が与えられる。 解法 の一の位の値は N % 10 で取得できる。この値を調べればよい。 ここで、コツとして、if-else 文の最後の else のところが最も面倒なものが来るようにしよう。ここ…

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 165 A - We Love Golf

色んな解法がある! この手の数値的なものに対して「全探索」という解法を選択肢に持てるようにしていこう。 問題へのリンク 問題概要 3 個の正の整数 が与えられる。次の条件を満たす整数が存在するかどうかを判定せよ。 の倍数である 以上 以下である 制約…

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 161 A - ABC Swap (灰色, 100 点)

言われた通りの操作を愚直に実行するのが、何も考えなくてよくて楽だと思う! 問題へのリンク 問題概要 箱 A, B, C に、それぞれ数 の書かれたカードを入れる。 箱 A, B の中身を入れ替える 箱 A, C の中身を入れ替える これらの操作を順に実行したあとの、…

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

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

AtCoder ABC 159 A - The Number of Even Pairs (灰色, 100 点)

nC2 系の問題は ABC-D などで頻出だが、その練習ができる問題! 問題へのリンク 問題概要 偶数の書かれたボールが 個 奇数の書かれたボールが 個 あります。これら 個のボールから 2 個選んで、書かれた数の和をとります。 この和が偶数になるような選び方は…

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

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

AtCoder ABC 157 A - Duplex Printing (灰色, 100 点)

この切り上げ処理はぜひ憶えておこう! 問題へのリンク 問題概要 高橋君は、全 ページから成る書類を両面印刷する。両面印刷では、1 枚の紙に 2 ページ分のデータを印刷することができる。 最小で何枚の紙が必要か求めよ。 解法 が偶数のときは、 は 2 で割…

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 153 A - Serval vs Monster (灰色, 100 点)

これはとても教育的な問題!! 問題へのリンク 問題概要 HP が であるモンスターとサーバルは戦っている。 1 回の攻撃で HP を だけ減らすことができる。HP が 0 以下になるのに必要な攻撃回数を求めよ。 解法 (1) を で割ったときに、余りがあるならば追加…

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

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

AtCoder ABC 151 A - Next Alphabet (灰色, 100 点)

アルファベット文字の扱い方に関する問題。 問題へのリンク 問題概要 z 以外のアルファベット小文字 が与えられる。 の次の文字を答えよ。 ('g' ならば、答えは 'h') 解法 C++ ならば、文字 を char 型で受け取って、それをインクリメントして出力すれば OK…

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

文字列型が定義されている言語なら簡単! 問題へのリンク 問題概要 2 つの文字列 が与えられる。 の順に連結して得られる文字列を出力せよ。 解法 問題文に書いてある通りに、文字列を連結して答えてもよいが、それよりは単純に をこの順に出力する方が楽。 …

AtCoder ABC 148 A - Round One (灰色, 100 点)

発想ゲー。 問題へのリンク 問題概要 1, 2, 3 のうちの 2 つの整数 が与えられる。 残りの整数を答えよ。 解法 色んな解法が考えられる。 の値で場合分けして解くこともできる。 しかし、最も簡単なのは、合計値が なのだから、そこから と を引く方法であろ…

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

ちょっと図形問題! でも、サンプルから法則を見つける解き方もできそう。 問題へのリンク 問題概要 半径 の円の面積が、半径 1 の円の面積の何倍であるかを答えよ。 解法 1:円の面積の公式 半径 の円の面積は である。これに対して、半径 の円の面積は、 …

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

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

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 文 (あるいは準ずる…