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

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

演算子「+」「-」「*」を用いる問題

JOI 一次予選 2022 (第 3 回) B - アイスクリーム (7Q, 難易度 2)

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

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

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

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

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

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

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

AtCoder ABC 234 A - Weird Function (7Q, 灰色, 100 点)

数学の関数と、プログラミングにおける関数を繋げよう! 問題へのリンク 問題概要 関数 を とする。 与えられた整数 に対して、 を求めよ。 制約 は 0 以上 10 以下の整数 解法 関数 を、プログラムにおける「関数」として実装しよう。 コード #include <bits/stdc++.h> usi</bits/stdc++.h>…

AtCoder ABC 233 A - 10yen Stamp (8Q, 灰色, 100 点)

切り上げ処理の練習! 問題へのリンク 問題概要 円ある。10 円増やすことを繰り返して 円以上になるようにしたい。 10 円増やす操作を最小で何回やればよいかを求めよ。 解法 まず、 のときは、もともと 10 円を増やす必要はないので 0 回になる。 の場合は…

JOI 一次予選 2022 (第 2 回) A - 立方体 (10Q, 難易度 1)

このくらい易しい問題はとてもいい! 問題へのリンク editorial 問題概要 一辺の長さが である立方体の体積を求めよ。 解法 求める体積は である。 よって、整数値 X の入力を受け取り、X * X * X の値を出力すればよい。 コード #include <bits/stdc++.h> using namespace </bits/stdc++.h>…

JOI 一次予選 2023 (第 2 回) A - 時間 (10Q, 難易度 1)

「1 日 = 24 時間」ですね。 問題へのリンク editorial 問題概要 日とは、何時間であるか求めよ。 解法 1 日は 24 時間であり、2 日は 48 時間であり、3 日は 72 時間である。このように、日数に 24 をかけることで、時間数を求めることができる。 よって、 …

鉄則本 A01 - The First Problem (10Q, ★1)

鉄則本の最初の問題! 問題へのリンク 問題概要 一辺の長さが であるような正方形の面積を求めよ。 解法 求める正方形の面積は ですね。 よって、整数値 N の値を標準入力で受け取って、N * N の値を標準出力すればよいでしょう。 コード #include <bits/stdc++.h> using na</bits/stdc++.h>…

JOI 一次予選 2024 (第 2 回) A - 飴の袋詰め (9Q, 難易度 1)

例によって、一次予選の A 問題は教育的! 問題へのリンク editorials 問題概要 1 個 円の飴を 個と、 円の袋を 1 つ買う。 合計金額はいくらか求めよ。 解法 答えは です。 プログラムでは、整数値 A, B, C を標準入力で受け取って、整数値 A * B + C を標…

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

JOI 一次予選の問題は本当に教育的なものが多い! 問題へのリンク editorial へのリンク 問題概要 リンゴが 個、ミカンが 個、バナナが 3 個ある。 リンゴとミカンとバナナが合わせて何個あるかを求めよ。 解法 答えは 個です。 プログラムを書くときには、…

AtCoder ABC 211 A - Blood Pressure (灰色, 100 点)

double 型変数の練習! 問題へのリンク 問題概要 2 つの数 が与えられる。 の値を出力せよ。なお、絶対誤差または相対誤差が 以下であれば正解とみなされる。 解法 普段は整数型を扱うことが多いけど、今回は浮動小数点型を扱おう。そして、小数点以下 位以…

AtCoder ABC 210 A - Cabbages (灰色, 100 点)

基本情報などでもよく問われる構造の問題! 問題へのリンク 問題概要 キャベツ 1 個を 円で買える。ただし、 個以上買う場合は 1 個 円で買える ()。 キャベツを 個買うときの価格を求めよ。 解法 である場合 最初の 個の分: 円 残りの 個の分: 円 である…

AtCoder ABC 202 A - Three Dice (灰色, 100 点)

算数! 問題へのリンク 問題概要 サイコロの 6 面のうち、3 面の数 が見えている。 隠れている残り 3 面の数の和を求めよ。 解法 6 面の数の和は なので、これから を引けばよい。 #include <bits/stdc++.h> using namespace std; int main() { int a, b, c; cin >> a >> b </bits/stdc++.h>…

AtCoder ABC 200 A - Century (灰色, 100 点)

切り上げ処理の問題! 問題へのリンク 問題概要 西暦 年は何世紀ですか? 解法 のとき、2 世紀 のとき、21 世紀 というように、 を 100 で割ったときの余りを切り上げたものが答えとなる。 これは、(N + 100 - 1) / 100 によって求められる (ここがピンと来…

AtCoder ABC 199 A - Square Inequality (灰色, 100 点)

不等式を頑張って実装! 問題へのリンク 問題概要 3 個の整数 が与えられる。 であるかどうかを判定せよ。 解法 if (A * A + B * B < C * C) によって判定できる。 #include <bits/stdc++.h> using namespace std; int main() { int A, B, C; cin >> A >> B >> C; if (A * A</bits/stdc++.h>…

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

割合を計算する問題! 問題へのリンク 問題概要 円のものが 円で売られた。何%引きか? 解法 答えは である。これを double 型などで計算して、小数点第 2〜3 位まで答えれば OK。 ここでは念の為に、小数点第 10 位まで出力した。 #include <bits/stdc++.h> using namespac</bits/stdc++.h>…

AtCoder ABC 192 A - Star (灰色, 100 点)

一見「切り上げ処理」が必要だが、実は要らない! 問題へのリンク 問題概要 コインが 枚ある。 よりも大きい最小の の倍数まで、あと何枚か? 解法 を 100 で割ったあまりを としよう。このとき、次の の倍数までは だけ必要である。たとえ、 が 100 で割り…

AtCoder ABC 184 A - Determinant (灰色, 100 点)

一瞬、「行列式ってなに!?」となるかもしれない。しかし、式が書いてあるので、それを使えば OK。 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 解法 問題文には「行列式」とか書いてあって、一瞬ビビるけど、ビビる必要はない。行列式…

AtCoder ABC 182 A - twiblr (灰色, 100 点)

四則演算を使いこなそう! 問題へのリンク 問題概要 ある SNS では、 2 × (フォロワー数) + 100 [人] までフォローすることができる。今のフォロワー数が 、フォロー数が である場合に、あと何人フォローできるかを答えよ。 解法 フォローできる上限人数は […

AtCoder ABC 180 A - box (灰色, 100 点)

これは簡単! 問題へのリンク 問題概要 個のボールが入っていた箱から 個を取り出し、新しく 個のボールを入れた。 箱の中に何個のボールが入っているか? 解法 個である。 #include <bits/stdc++.h> using namespace std; int main() { int N, A, B; cin >> N >> A >> B; c</bits/stdc++.h>…

AtCoder ABC 176 A - Takoyaki (灰色, 100 点)

この手の「切り上げ処理」は、もう憶えてしまおう! 問題へのリンク 問題概要 個のたこ焼きを作りたい。 たこやきを作り始めてから、 秒おきに 個のたこ焼きを作る。 個のたこ焼きを作り切るのに最低何秒かかるか。 解法 たこやきを生産する回数は、次のよう…

AtCoder ABC 173 A - Payment (灰色, 100 点)

これはちょっと難しい。 問題へのリンク 問題概要 円の買い物をした。1000 円札のみを用いて支払うとき、お釣りはいくらになるか? 解法 まず、 が 1000 で割り切れるときは、お釣りはない。つまり、0 円である。 が 1000 で割り切れないときが少し難しい。…

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

算数の素養は必要なく、ただ本当に計算式を実装する。 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 解法 とは、 のことである。また、 とは、 のことである。 よって、 a + a * a + a * a * a の値を出力すればよい。 #include <bits/stdc++.h> using na</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 157 A - Duplex Printing (灰色, 100 点)

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

AtCoder ABC 153 A - Serval vs Monster (灰色, 100 点)

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

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 148 A - Round One (9Q, 灰色, 100 点)

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