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

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

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

AtCoder ABC 120 A - Favorite Sound (灰色, 100 点)

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

AtCoder ABC 118 A - B +/- A (灰色, 100 点)

倍数判定は演算子「%」を用いる! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が の約数ならば の値を出力し、そうでないならば の値を出力せよ。 解法 が の約数 (言い換えると、 が で割り切れる) であるかどうかは、 if (B % A == 0) という…

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

意外と問題文が読みにくい気もする。 問題へのリンク 問題概要 電車とバスを乗り継いで目的地にいきます。電車の運賃は 円、バスの運賃は 円でした。 ただし、バスの運賃が半額になる特別券を持っていたので使用しました。合計料金はいくらだったでしょうか…

AtCoder ABC 108 A - Pair (灰色, 100 点)

「場合の数」の問題! 問題へのリンク 問題概要 1 以上 以下の正の整数から、偶数と奇数ひとつずつの組を選ぶ方法の個数を求めてください。 なお、選ぶ順番は考慮しません。 解法 まず、1 以上 以下の整数のうち、偶数の個数は K / 2 個である。よって奇数の…

AtCoder ABC 106 A - Garden (灰色, 100 点)

まさに算数!って感じの問題! 問題へのリンク 問題概要 下図のように、 の長方形領域から、縦横に幅 1 の道路がある。道路以外の部分の面積はいくらか? 解法 算数の典型問題! 道路の幅を除くと、縦の長さは 、横の長さは となるので、求める面積は となる…

AtCoder ABC 105 A - AtCoder Crackers (灰色, 100 点)

分配に関する面白い問題! 問題へのリンク 問題概要 枚のせんべいを 人に配る。 「最も多くのせんべいをもらった人」と「最も少ないせんべいをもらった人」の、もらったせんべいの個数の差を求めよ。 解法 もし、 が で割り切れるならば、全員に公平に分配で…

AtCoder ABC 332 A - Online Shopping (灰色, 100 点)

for 文と if 文の練習! 問題へのリンク 問題概要 種類のものを買う。 種類目のものは価格が 円であり、それを 個買う。 合計金額が 円未満ならば、さらに送料が 円加算される。総支払額を求めよ。 解法 まずは for 文を用いて、 の合計を求めよう。その値が…

AtCoder ABC 097 A - Colorful Transceivers (灰色, 100 点)

ちょっと整理するのが大変な問題。 問題へのリンク 問題概要 一直線上の座標 の点に、それぞれ A さん、B さん、C さんがいる。 2 人は、距離が 以内にいるとき、直接的に通信ができる。 A さんと C さんが、直接的に、あるいは間接的に、通信ができるかどう…

AtCoder ABC 092 A - Traveling Budget (灰色, 100 点)

いい感じの問題! 問題へのリンク 問題概要 電車とバスを乗り継いで目的地へ行く。 電車は、通常切符で 円、乗り放題切符で 円かかる バスは、通常切符で 円、乗り放題切符で 円かかる 最も安く行く方法で何円かかるか。 解法 答えは min(A, B) + min(C, D) …

AtCoder ABC 091 A - Two Coins (灰色, 100 点)

硬貨の問題! 問題へのリンク 問題概要 あなたは 円硬貨を 1 枚と、 円硬貨を 1 枚を持っている。 円の品物を購入できるかを判定せよ (お釣りは出ても良い)。 解法 所持金は 円であるから、 がそれ以下であれば OK。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 088 A - Infinite Coins (灰色, 100 点)

少し気づきにくいかもしれない。 問題へのリンク 問題概要 あなたは、 円硬貨を 枚と、 円硬貨を無限枚持っている。 これらで 円をちょうど支払うことができるかどうかを判定せよ。 解法 一瞬戸惑う問題だと思う。現実の支払いの場面を思い浮かべてみるとわ…

AtCoder ABC 087 A - Buying Sweets (灰色, 100 点)

これは簡単! 問題へのリンク 問題概要 円持っている状態から、 円の品物を買い、そのあと 円の品物をできるだけ買いました。 手元に残っている金額は? 解法 まず 円の品物を買ったあと、手元には 円残っている。 そのあと、 円の品物をできるだけ買ったと…

AtCoder ABC 086 A - Product (灰色, 100 点)

ABS に採用した問題! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が偶数か奇数かを判定せよ。 解法 一般に、整数 N が偶数かどうかを判定する方法は、if (N % 2 == 0) とすればよい。これを応用して解ける。 #include <bits/stdc++.h> using namespace std; i</bits/stdc++.h>…

AtCoder ABC 084 A - New Year (灰色, 100 点)

時刻の問題! 問題へのリンク 問題概要 今、12 月 30 日の 時です ()。年が明けるのは何時間後でしょうか。 解法 12 月 30 日と、12 月 31 日の 2 日間の時間をすべて合わせると 時間 あります。そのうちの 時間がすでに経過しているということなので、年が…

AtCoder ABC 083 A - Libra (灰色, 100 点)

if 文の練習問題! 問題へのリンク 問題概要 天秤の左側に重さが g のおもりを乗せ、右側に重さが g のおもりを乗せる。 天秤が左に傾くか、右に傾くか、釣り合うかを判定せよ。 解法 A + B > C + D のときは:"Left" A + B < C + D のときは:"Right" A + B…

AtCoder ABC 082 A - Round Up the Mean (灰色, 100 点)

「切り上げ処理」を要求する問題! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 の平均値を求め、小数点以下を切り上げて得られる整数値を答えよ。 解法 が偶数ならば、平均値は整数であって、答えは (a + b) / 2 となる が奇数ならば、平均値は…

AtCoder ABC 080 A - Parking (灰色, 100 点)

これは簡単だけど、頭がごちゃごちゃにならないようにしよう! 問題へのリンク 問題概要 ある駐車場では 2 パターンが選べる 時間駐車したときに、 円かかる 駐車時間にかかわらず、 円かかる 時間駐車したときの料金の最小値を求めよ。 解法 2 パターンの駐…

AtCoder ABC 076 A - Rating Goal (灰色, 100 点)

平均算! 問題へのリンク 問題概要 整数 が与えられる。 と の平均が になるような整数 を求めよ。 解法 平均の定義から、 となる。これを について解くと、 となる。このような式変形は中2「式の計算」で学ぶ。 #include <bits/stdc++.h> using namespace std; int main() </bits/stdc++.h>…

AtCoder ABC 074 A - Bichrome Cells (灰色, 100 点)

これは簡単! 問題へのリンク 問題概要 のマス目があって、それぞれ白黒に塗られている。 マスが白色であるとき、黒色は何マスか? 解法 全部で マスがあるので、黒色マスの個数は となる。 #include <bits/stdc++.h> using namespace std; int main() { int N, A; cin >> N</bits/stdc++.h>…

AtCoder ABC 072 A - Sandglass2 (灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 秒を測れる砂時計がある。 g あって、1 秒間に 1 g の砂が落ちる。 砂時計の計測を始めてから、 秒間がたった。残っている砂は何 g でしょうか。 解法 基本的には引き算すればよ…

AtCoder ABC 067 A - Sharing Cookies (灰色, 100 点)

問題文を読み解くのが少し大変だった。 問題へのリンク 問題概要 2 つの整数 が与えられる。 、、 のいずれかが、3 で割り切れるかどうかを判定せよ。 解法 と と のいずれかが 3 で割り切れるかどうかを、or を表す演算子「||」を用いて調べれば OK。 #incl…

AtCoder ABC 064 A - RGB Cards (灰色, 100 点)

3 桁の整数で前から順に である数の表し方は中2で習う内容でもある。 問題へのリンク 問題概要 と書かれた 3 枚のカードをこの順に並べて得られる 3 桁の整数が 4 の倍数であるかどうかを判定せよ。 解法 3 桁の整数で前から順に である数は、 と書ける。 こ…

AtCoder ABC 063 A - Restricted (灰色, 100 点)

if 文のいい練習問題! 問題へのリンク 問題概要 2 つの整数 が与えられる。 が 10 以上ならば "error" を出力し、そうでないならば足し算した結果の値を出力せよ。 解法 if 文を使おう! #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A ></bits/stdc++.h>…

AtCoder ABC 057 A - Remaining Time (灰色, 100 点)

24 時制の問題 問題へのリンク 問題概要 24 時制で 時から 時間後の時刻を 24 時制で表したものを求めよ。 解法 基本的には を計算すればよい。もし 24 を超えたら 24 を引けばよい。 あるいは、剰余演算子「%」を用いて (A + B) % 24 を求めてもよい。 #inc…

AtCoder ABC 055 A - Restaurant (灰色, 100 点)

算数力の地力としての、四則演算を操る技能が問われる問題 問題へのリンク 問題概要 個買う。 個買うごとに 800 円支払う 個買うごとに 200 円もらえる 支払った金額 - もらった金額を答えよ。 解法 支払った金額は 800 * N もらった金額は 200 * (N / 15) …

AtCoder ABC 050 A - Addition and Subtraction Easy (灰色, 100 点)

いかにも C 言語を習いたての学生さんに対する演習問題という感じ 問題へのリンク 問題概要 2 つの整数 と、演算子を表す 1 つの文字列 が与えられる。 は '+' か '-' のいずれかである。 演算結果を求めよ。 解法 if 文を用いて処理を分岐する。 #include <bits/stdc++.h> </bits/stdc++.h>…

AtCoder ABC 305 A - Water Station (灰色, 100 点)

この処理は今後めっちゃ頻出なので、スラスラ書けるようになっておきたい! 問題へのリンク 問題概要 正の整数 が与えられる。 に最も近い 5 の倍数を求めよ。 解法 たとえば としてみよう。5 の倍数は 0, 5, 10, 15, 20, 25, 30, 35, 40, ... と続いていく…

AtCoder ABC 308 A - New Scheme (灰色, 100 点)

「単調増加かどうか判定」は典型。そのような処理の実装に慣れよう! 問題へのリンク 問題概要 長さ の数列 が与えられる。この数列が以下の条件を全て満たすかどうかを判定せよ。 広義単調増加である すべて 100 以上 675 以下である すべて 25 の倍数であ…

AtCoder ABC 043 A - キャンディーとN人の子供イージー (灰色, 100 点)

等差数列の和の公式を使ってもいいし、素直に for 文を足してもいい。 問題へのリンク 問題概要 正の整数 が与えられる。 の値を答えよ。 解法 1 素直に for 文で足していく方法。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; int res = </bits/stdc++.h>…

AtCoder ABC 318 A - Full Moon (灰色, 100 点)

これは意外と難しいと感じた方も多いかもしれない! 問題へのリンク 問題概要 正の整数 が与えられる。 日目、 日目、 日目、... には満月が見られる。 日目から 日目までの間で満月が見られる日が何日あるかを求めよ。 解法 前提として、次のことはよく知ら…