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

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

if文

AtCoder ABC 391 A - Lucky Direction (8Q, 灰色, 100 点)

for 文を使うと少し楽。 問題へのリンク 問題概要 8 種類の方角を表す文字列 が与えられる。次のいずれかである。 北:N 東:E 西:W 南:S 北東:NE 北西:NW 南東:SE 南西:SW 与えられた文字列の反対の方角を表す文字列を出力せよ。 解法 8 通りの場合を…

JOI 一次予選 2025 第 2 回 B - 鉄道旅行 3 (8Q, 難易度 2)

if 文の練習問題 問題へのリンク 問題概要 ビ太郎は JOI 鉄道に乗って旅行をする。JOI 鉄道の運賃ははじめの km までは 1 km あたり 円で、それ以降の運賃は 1 km あたり 円で計算される。 km 乗車するとき、運賃はいくらになるか出力せよ。 解法 距離が 以…

AtCoder ABC 385 A - Equally (7Q, 灰色, 100 点)

場合分けを頑張ろう! 問題へのリンク 問題概要 3 つの整数 をいくつかのグループに分けて、各グループに含まれる整数の総和を等しくできるかを判定せよ。 考えたこと 次の 2 つの場合が考えられる。 2 つのグループに分けて、総和を等しくする 3 つのグルー…

AtCoder ABC 377 A - Rearranging ABC (7Q, 灰色, 100 点)

昔の ABC A 問題はこういうのよくあった! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。これを並び替えることで "ABC" に一致させることができるかどうかを判定せよ。 考えたこと 並び替えて "ABC" に一致する文字列は "ABC" "ACB" "BAC" "BCA" "…

AtCoder ABC 059 B - Comparison (7Q, 灰色, 200 点)

巨大な整数値の大小比較の問題 問題へのリンク 問題概要 2 つの正の整数 (101 桁以下)が与えられるので、その大小比較をせよ。 考えたこと は 100 桁にも及ぶことがあるので、long long 型などで受け取ることもできない。そこで、string 型で受け取ろう。…

AtCoder ABC 374 A - Takahashi san 2 (7Q, 灰色, 100 点)

関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…

JOI 一次予選 2025 第 1 回 B - 散歩 (8Q, 難易度 1)

ちょっとした算数的な考え方が必要になる問題 問題へのリンク 問題概要 JOI 君は以下の行動を行動 A → 行動 B → 行動 A → ⋯ のように交互に繰り返す。 行動 A:3m 前に進む 行動 B:2m 後ろに戻る 行動を合わせて 回行うとき、何m進むか? 解法 このような問…

AtCoder ABC 370 A - Raise Both Hands (8Q, 灰色, 100 点)

else if 文と、論理演算子「&&」の練習。 問題へのリンク 問題概要 2 つの整数 が与えられる。 かつ のときは "Yes" かつ のときは "No" それ以外のときは "Invalid" を出力せよ。 考えたこと else if 文と、論理演算子「&&」を使って、次のように書ける。 #…

AtCoder ABC 369 A - 369 (6Q, 灰色, 100 点)

偶数と奇数に関する理解も問われる問題。 問題へのリンク 問題概要 2 つの整数 が与えられる。 「 を並び替えると等差数列をなす」 という条件をみたすような整数 が何通りあるか求めよ。 制約 解法 (1):数学的に解く まず、 の大小関係で場合分けして考え…

AtCoder ABC 149 B - Greedy Takahashi (7Q, 灰色, 200 点)

if 文や else if 文の練習! 問題へのリンク 問題概要 高橋君は 枚、青木君は 枚のクッキーをもっている。 高橋君は 回次の行動をとる。 自分のクッキーが残っていたら、それを 1 枚食べる 残っていなくて、青木君のクッキーが残っていたら、それを 1 枚食べ…

AtCoder ABC 167 B - Easy Linear Programming (8Q, 灰色, 200 点)

上手に場合分けして解いていこう。 問題へのリンク 問題概要 1 が書かれたカードが 枚、0 が書かれたカードが 枚、 −1 が書かれたカードが 枚ある。 これらのカードから、ちょうど 枚を選んで取るとき、取ったカードに書かれた数の和として、 ありうる値の最…

第 16 回 PAST A - ツバメ (8Q)

簡単な if 文の問題! 問題へのリンク 問題概要 日本では、ツバメは 4 月から 9 月まで観察できる。 1 以上 12 以下の整数 が与えられるので、 月にツバメを観察できるか答えてください。 考えたこと 次のように考えればよい。 のとき:"Yes" そうでないとき…

第 9 回 PAST A - アトラクション (8Q)

if 文と、論理演算子の練習! 問題へのリンク 問題概要 あるアトラクションに乗るには、身長が 以上、体重が 以下である必要がある。 身長が 、体重が である高橋君は乗れるか? 考えたこと かつ であるかどうかを判定すればよい。 C++ であれば、論理演算子…

第 15 回 PAST B - 殿堂入り (9Q)

if 文の練習問題 問題へのリンク 問題概要 高橋君の現在のレーティングは 、最高レーティングは である。 高橋君の最高レーティングが 2800 以上であるかどうかを判定せよ。 考えたこと は結局関係ない。 H >= 2800 ならば "o" そうでなければ "x" を出力す…

AtCoder ABC 268 A - Five Integers (7Q, 灰色, 100 点)

ちょっと整理が難しいかもしれない。 問題へのリンク 問題概要 5 個の整数 が与えられる。これらの整数の中に何種類の整数があるかを答えよ。 考えたこと 次のように考える。なお、答えを格納する変数を res とする。 まず整数 のみを考えると、整数は 1 種…

AtCoder ABC 366 A - Election 2 (7Q, 灰色, 100 点)

頭がこんがらがる系の問題! 問題へのリンク 問題概要 高橋君と青木君を候補者とする選挙が行われ、 票が投票された。 現在開票中で、高橋君が 票、青木君が 票を得ている。この時点で残りの票にかかわらず勝敗が確定しているかどうかを判定せよ。 制約 は奇…

AtCoder ABC 259 A - Growth Record (6Q, 灰色, 100 点)

きっちり整理しよう! この手の問題は、混乱したらグラフをかくといい! 問題へのリンク 問題概要 高橋君は 歳の誕生日を迎えて、身長は cm となった。 高橋君は 歳までは毎年 cm ずつ伸びた 高橋君は 歳以降は身長が変化しなかった 高橋君の 歳のときの身長…

AtCoder ABC 250 A - Adjacent Squares (6Q, 灰色, 100 点)

グリッド上の問題を考えるときには、いつも大事になる処理! 問題へのリンク 問題概要 のグリッドがある。上から 行目、左から 列目のマスを考える。 このマスに辺で隣接するマスの個数を求めよ。 制約 考えたこと ここでは 0-indexed で考える。つまり、一…

AtCoder ABC 260 A - A Unique Letter (7Q, 灰色, 100 点)

条件が複雑なので、綺麗に整理しよう! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。 の中に「一度だけ登場する文字」が存在するならば、そのうちのどれか 1 つを出力せよ。 一度だけ登場する文字が存在しない場合は -1 と出力せよ。 考えたこと …

AtCoder ABC 365 A - Leap Year (8Q, 灰色, 100 点)

閏年の問題! 問題へのリンク 問題概要 1583 以上 2024 以下の整数 が与えられる。なお、西暦 年の日数は、 が 4 の倍数でないとき:365 日 が 4 の倍数で、かつ 100 の倍数でないとき:366 日 が 100 の倍数で、かつ 400 の倍数でないとき:365 日 が 400 …

AtCoder ABC 362 A - Buy a Pen (8Q, 灰色, 100 点)

if 文や、関数 min() を扱う練習! 問題へのリンク 問題概要 お店では "Red" のペンが一本 円、"Green" のペンが一本 円、"Blue" のペンが一本 円で売られている。 高橋君は色 ("Red", "Green", "Blue" のいずれか) が嫌いである。色 以外のペンの価格の最小…

AtCoder ABC 363 A - Piling Up (8Q, 灰色, 100 点)

レーティングネタ問題! 問題へのリンク 問題概要 1 以上 299 以下の整数 が与えられる。 よりも大きい最小の 100 の倍数から を引いた値を求めよ。 解法 (1):場合分けして解く 場合分けして考えてしまうのが確実かもしれない。 のとき: より大きい最小の …

AtCoder ABC 267 A - Saturday (8Q, 灰色, 100 点)

if 文を並べる感じ。switch 文が使えるなら、それでも! 問題へのリンク 問題概要 Monday, Tuesday, Wednesday, Thursday, Friday のいずれかの文字列 が与えられる。それぞれ、月曜日、火曜日、水曜日、木曜日、金曜日を表す。 この日から土曜日まで何日で…

AtCoder ABC 242 A - T-shirt (6Q, 灰色, 100 点)

確率を考えるための基礎となる問題! 問題へのリンク 問題概要 コンテストに 1000 人が参加した。 上位 位は、確実に T シャツがもらえる 上位 位から 位までは、その中からランダムに 人が選ばれて、T シャツがもらえる それ以外は、T シャツをもらえない …

AtCoder ABC 258 A - When? (8Q, 灰色, 100 点)

最後の出力が少しややこしいかもしれない。 問題へのリンク 問題概要 21:00 の 分後の時刻を "22:14" のような形式で出力せよ。 制約 解法 まずは時刻を求めよう。 のときは、 時 分 のときは、 時 分 と求められる。 さて、出力するときには「何分」のとこ…

JOI 一次予選 2020 (第 3 回) A - X に最も近い値 (7Q, 難易度 2)

いろんな解法がある! 問題へのリンク 問題概要 以上 以下の整数のうち、 との差の絶対値が最も小さいものを求めよ。 制約 解法 (1):for 文 一番確実な方法は、for 文を用いて、 をすべて調べることだと思われます。 が最小となるような を求めればよいでし…

AtCoder ABC 251 A - Six Characters (8Q, 灰色, 100 点)

少し面白い問題! 問題へのリンク 問題概要 長さが 1, 2, 3 のいずれかの文字列 が与えられる。 を繰り返して得られる文字列であって、長さが 6 であるものを答えよ。 考えたこと 次のように考えれば良い。 の長さが 1 のとき: を 6 回繰り返す の長さが 2 …

JOI 一次予選 2021 (第 2 回) A - 帰省 (8Q, 難易度 1)

ちょっと細かいところミスった人も多いかもしれないね。 問題へのリンク 問題概要 ビ太郎は帰省することにした。 今日から 日後の午前に実家に着き、今日から 日後の午前に実家を去る。 それを聞きつけたビバ子は、今日から 日後の午後にビ太郎の実家を訪れ…

JOI 一次予選 2022 (第 1 回) B - 移動 (8Q, 難易度 1)

少し数学を頑張ろう! 問題へのリンク 問題概要 A 地点から B 地点に移動するのに 時間,B 地点から C 地点に移動するのに 時間かかる。 A 地点から B 地点を経由して C 地点に移動するとき、 時間 30 分以内に移動することができるか判定せよ。 制約 解法 …

JOI 一次予選 2023 (第 3 回) B - 11 月 (9Q, 難易度 1)

文字式と、if 文の練習! 問題へのリンク 問題概要 2022 年 11 月 日の 週間後が 11 月 30 日以前ならば 1 を出力し、そうでなければ 0 を出力せよ。 解法 11 月 日の 週間後は、11 月換算で 日 となる。これが 30 以下であるかどうかを判定すればよい。 コ…