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

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

易しい算数と数学

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

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

AtCoder ABC 246 A - Four Points (6Q, 灰色, 100 点)

工夫すると楽できる! 問題へのリンク 問題概要 xy 平面上に、各辺が x 軸または y 軸に平行である長方形がある。この長方形の 4 つの頂点のうちの、3 つの頂点の座標 が与えられる。 残り 1 点の座標を求めよ。 制約 考えたこと:一般の長方形の性質 たとえ…

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

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

AtCoder ABC 264 A - "atcoder".substr() (8Q, 灰色, 100 点)

文字列の部分文字列を取得する関数 substr() (C++) を用いるか、for 文で書こう。 問題へのリンク 問題概要 文字列 "atcoder" について、 文字目から 文字目までを出力せよ。 制約 解法 (1):関数 substr() を使う。 文字列 S に対して、 S.substr(i, l) は…

AtCoder ABC 253 A - Median? (7Q, 灰色, 100 点)

条件を巧みに言い換えて整理しよう! 問題へのリンク 問題概要 3 個の整数 が与えられる。 がメディアンであるかどうかを判定せよ。 解法 がメディアンとは、すなわち、 を小さい順に並べたときに、 が 2 番目に小さいということである。そのような場合は が…

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

シミュレーションで解くか、数学的に解こう! 問題へのリンク 問題概要 シャンプーが mL 余っている。 F さん、M さん、T さんが順に mL ずつ使っていく。最初にシャンプーが足りなくなる人が誰になるかを求めよ。 解法 (1):シミュレーション まずは、シャ…

AtCoder ABC 245 A - Good morning (7Q, 灰色, 100 点)

ペア値の大小比較。もしくは「分」に換算する手もある。 問題へのリンク 問題概要 高橋君は 時 分に起きて、青木君は 時 分 1 秒に起きた。 高橋君の起床時刻が青木君より早いならば Takahashi を、そうでないならば Aoki を出力せよ。 考えたこと ペア値 と…

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

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

AtCoder ABC 262 A - World Cup (7Q, 灰色, 100 点)

落ち着いて整理していこう! 問題へのリンク 問題概要 以上の最小の 4 で割って 2 余る整数を求めよ。 制約 考えたこと を 4 で割った余りによって場合分けして考えよう。 が 4 で割り切れるとき:2 足すことで「4 で割って 2 余る整数」になるので、 が答え…

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

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

AtCoder ABC 272 A - Integer Sum (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 個の整数 が与えられる。 の値を求めよ。 解法 まず、答えを表す変数 res を用意しましょう (初期値は 0 とします)。 for 文を用いて、順に A[i] を res に足し込んであげます。 コード #include <bits/stdc++.h> using namespace s</bits/stdc++.h>…

AtCoder ABC 254 A - Last Two Digits (8Q, 灰色, 100 点)

整数として扱っても解けるけど、文字列として処理するのが楽だと思う! 問題へのリンク 問題概要 100 以上の 3 桁の整数 が与えられるので、 の下二桁を出力せよ。 解法 3 桁の整数値を文字列 N として入力を受け取ろう。たとえば、459 という整数は、"459" …

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 (第 3 回) B - アイスクリーム (7Q, 難易度 2)

整数の切り上げの問題。意外と正確に解くのは大変かもしれない。 問題へのリンク 問題概要 ベースとなるアイスクリームの金額は 250 円で、高さは cm である。追加のアイスクリームは 1 個につき 100 円で、1 個追加するごとにアイスクリームタワーの高さが …

AtCoder ABC 343 A - Wrong Answer (8Q, 灰色, 100 点)

パズルのような問題! 問題へのリンク 問題概要 0 以上 9 以下の 2 つの整数 が与えられる。 0 以上 9 以下の整数のうち、 とは異なるものを 1 つ求めよ。 考えたこと もし でなければ、0 を出力すれば事足りる。 もし であるならば、0 以外の数 (たとえば 1…

JOI 一次予選 2022 (第 3 回) A - 身長 (10Q, 難易度 1)

人生で初めてプログラミングをするときに、最初に解きたい問題の 1 つ 問題へのリンク 問題概要 JOI 君の 1 年前の身長は cm であった。JOI 君の今の身長は cm である。 身長はどれだけ伸びたか? 解法 身長の伸びは、 cm です。 整数値 を受け取る整数型変…

JOI 一次予選 2022 (第 2 回) B - 短針 (7Q, 難易度 1)

シミュレーションしてもいいし、数学的に綺麗に解くこともできる! 問題へのリンク 問題概要 時計は 1 〜 12 を繰り返す。 時の 時間後は、何時であるかを答えよ。 制約 解法 (1):シミュレーション から出発して、 回以下のことを繰り返せばよい。 1 増やす…

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

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

AtCoder ABC 349 A - Zero Sum Game (7Q, 灰色, 100 点)

数学の部分を乗り越えることが難しいかもしれない。 問題へのリンク 問題概要 人 が、一対一の勝敗のつくゲームを何度か行った。 人の最初の持ち点は 0 点である。 各ゲームでは勝者の持ち点が 1 増え、敗者の持ち点が 1 減る。(持ち点が負になることもある…

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

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

JOI 一次予選 2023 (第 3 回) A - 2 桁の整数 (9Q, 難易度 1)

十の位と一の位から、整数値を求めよう。 問題へのリンク 問題概要 2 つの整数 が与えられる。 十の位が 、一の位が であるような 2 桁の正の整数を求めよ。 制約 考えたこと このような問いは、中学数学でよく学ぶ。 一般に、十の位が 、一の位が であるよ…

JOI 一次予選 2023 (第 1 回) A - 長方形 (10Q, 難易度 1)

その日プログラミングを始めたばかりの方にオススメの問題! 問題へのリンク 問題概要 縦の辺の長さが cm、横の辺の長さが cm である長方形の面積は何 cm² か? 考えたこと 答えは です。プログラムでは、 に対応する整数型変数 (たとえば A, B) を用意して…

AtCoder ABC 306 B - Base 2 (7Q, 灰色, 200 点)

long long 型だとオーバーフローしてしまうので注意! unsigned long long 型なら大丈夫! 問題へのリンク 問題概要 0 と 1 からなる長さ 64 の数列 が与えられる。 の値を求めよ。 考えたこと 実は long long 型は、 以上 以下の整数しか表せない。今回扱う…

AtCoder ABC 305 B - ABCDEFG (6Q, 灰色, 200 点)

一見面倒そうに思える問題 問題へのリンク 問題概要 直線上に 7 点 A, B, C, D, E, F, G が下図のような間隔で並んでいる。 2 点を示すアルファベット が与えられるので、それらの間の距離を求めよ。 考えたこと 一見すごく面倒そうな問題だけど、工夫次第で…

JOI 一次予選 2024 (第 3 回) A - 分 (10Q, 難易度 1)

その日プログラミングを始めたばかりの人に勧めたい問題の 1 つ! 問題へのリンク 問題概要 整数 が与えられる。 時間 分が何分であるかを求めよ。 解法 1 (時間) = 60 (分) なので、 (時間) = (分) です。 よって、次のようになります。 (時間) (分) = (分)…

AtCoder ABC 361 B - Intersection of Cuboids (4Q, 灰色, 250 点)

「2 つの区間の交差している部分の長さ」を求める問題は典型。それが 3 次元になってもやることは一緒。 問題へのリンク 問題概要 3 次元空間内の直方体であって、2 点 を結ぶ線分を対角線とし、全ての面が xy 平面、yz 平面、zx 平面のいずれかに平行なもの…

AtCoder ABC 360 A - A Healthy Breakfast (7Q, 灰色, 100 点)

条件をいい感じに整理しよう 問題へのリンク 問題概要 文字 'R'、'M'、'S' を 1 文字ずつ含む長さ 3 の文字列 が与えられる。 この文字列 において、文字 'R' が文字 'M' よりも左側にあるかどうかを判定せよ。 考えたこと 文字 'R' が文字 'M' よりも左側に…

AtCoder ABC 269 A - Anyway Takahashi (9Q, 灰色, 100 点)

標準入出力と、四則演算の演算子の使い方を確認する問題。 問題へのリンク 問題概要 4 個の整数 が与えられる。 1 行目には、 の値を出力し、 2 行目には、"Takahashi" と出力せよ。 解法 標準入力を用いて整数値 の値を受け取ります。 その後、1 行目には (…