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

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

関数max()

AtCoder ABC 060 C - Sentou (5Q, 茶色, 300 点)

愚直シミュレーションをする問題。ただ、ある程度は計算量を知らないとドツボにハマる可能性がある。 問題へのリンク 問題概要 あるシャワーは、スイッチを押すとその後 秒間お湯が出る (延長するわけではない)。 時刻 (単調増加) にスイッチを押したとする…

AtCoder ABC 184 B - Quizzes (8Q, 灰色, 200 点)

for 文のいい練習問題! 問題へのリンク 問題概要 高橋君は 問のクイズに答える。最初 点であり、正解すると 1 点増加する。不正解だと 1 点減少するが、不正解前に 0 点である場合は減らない。 高橋君が各問題に正解したかどうかを表す文字列 が与えられる…

AtCoder ABC 204 B - Nuts (8Q, 灰色, 200 点)

配列の要素を for 文で順に調べていけば良い系! 問題へのリンク 問題概要 本の木にそれぞれ 個の実がなっている。それぞれの木から実を収穫する。ただし、 実っている木の実が 10 個以下の木からは木の実を収穫しない 10 個以上の実があるならば、10 個を残…

JOI 予選 2016 A - 科目選択 (AOJ 0619) (9Q, 難易度 1)

関数 max() や min() を扱う練習! 問題へのリンク 問題概要 物理、化学、生物、地学、歴史、地理のテストで 点を得た。 物理、化学、生物、地学から 3 科目 歴史、地理から 1 科目 を選択したときの総得点の最大値を求めよ。 制約 考えたこと 結局、「物理…

JOI 予選 2015 A - 水道料金 (AOJ 0608) (8Q, 難易度 1)

価格系の問題! 問題へのリンク 問題概要 水道を リットル使用する。X 社と Y 社の料金体系は次のようになっている。 X 社:1 リットルあたり 円かかる Y 社:基本料金は 円であり、使用料が リットルを超えると 1 リットル超えるごとに 円かかる どちらを選…

JOI 予選 2014 A - 平均点 (AOJ 0592) (9Q, 難易度 1)

これは易しめの問題 問題へのリンク 問題概要 太郎君、次郎君、三郎君、四郎君、花子さんの 5 人がテストを受けた。テストの得点は 点であった。 これらの得点について、40 点未満だったら 40 点にした状態での平均点を求めよ。 考えたこと に対して、40 点…

JOI 予選 2013 A - 宿題 (AOJ 0576) (8Q, 難易度 1)

切り上げ処理! 問題へのリンク 問題概要 冬休みは 日ある。 国語の宿題は ページあって、1 日に ページ進めることができる 算数の宿題は ページあって、1 日に ページ進めることができる 1 日に国語と算数を両方進めることもできる。冬休みのうち、宿題をや…

JOI 予選 2012 A - ランチ (AOJ 0565) (9Q, 難易度 1)

関数 min() が使えると楽! 問題へのリンク 問題概要 3 種類のパスタから 1 つ、2 種類のジュースから 1 つ選んで注文する。各パスタの価格と、各ジュールの価格が与えられる。 その金額の総和から 50 円を引いた金額を支払う。支払う金額の最小値を求めよ。…

JOI 予選 2018 A - 鉛筆 (AOJ 0641) (8Q, 難易度 1)

切り上げ処理! 問題へのリンク 問題概要 鉛筆を 本以上買いたい。買うための手段として、次の 2 セットがある。いずれかのセットを選び、選んだセットをいくつか購入することとする。両方のセットを選ぶことはできない。 セット X:1 セットあたり 本あり、…

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

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

JOI 一次予選 2020 (第 2 回) A - 試験 (8Q, 難易度 1)

楽しい問題! 問題へのリンク 問題概要 3 個の整数 が与えられる。 これらの整数のうち、大きい方から 2 個の和を求めよ。 解法 から、「一番小さい数」を引けば良いでしょう。 のうち一番小さい数は、C++ では、関数 min() を用いて min({A, B, C}) と表せ…

JOI 一次予選 2021 (第 3 回) A - 計算 (9Q, 難易度 1)

関数 max() と関数 min() を使いこなそう! 問題へのリンク 問題概要 2 つの整数 が与えられる。 と のうち、最大のものと最小のものを順に出力せよ。 解法 まず、 と のうちの最大のものは max(A + B, A - B) と表せます。なお、 と が同じ値である場合には…

JOI 一次予選 2023 (第 1 回) C - 3 つの箱 (7Q, 難易度 2)

問題文に言われた通りにシミュレーションする問題! 問題へのリンク 問題概要 長さ の文字列 があって、各文字は 'L' または 'R' である。 また、1 つのボールと、ボールを入れることができる箱 があって、最初ボールは箱 1 に入っている。文字列 の文字を順…

AtCoder ABC 207 A - Repression (8Q, 灰色, 100 点)

頭を柔らかくして考えよう。 問題へのリンク 問題概要 3 個の整数 から 2 個選んで和をとる。 この和の最大値を求めよ。 解法 3 個の整数 から 2 個選んだ和は の 3 通りがある。これらの最大値を求めればよい。 #include <bits/stdc++.h> using namespace std; int main() </bits/stdc++.h>…

AtCoder ABC 185 A - ABC Preparation (9Q, 灰色, 100 点)

面白い問題! 問題へのリンク 問題概要 コンテストを開くための 100, 200, 300, 400 点問題がそれぞれ 問ずつあつ。 100, 200, 300, 400 点問題を 1 問ずつ集めることで 1 回のコンテストを開くことができる。 何回のコンテストを開くことができるか。 解法 …

AtCoder ABC 183 A - ReLU (9Q, 灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもよい。 問題へのリンク 問題概要 整数 が与えられる。 ならば を出力せよ ならば 0 を出力せよ 解法 (1):if 文 if 文を用いて、 であるかどうかを判定して、処理を分けよう。 #include <bits/stdc++.h> using namespace std; </bits/stdc++.h>…

AtCoder ABC 143 A - Curtain (8Q, 灰色, 100 点)

また、関数 max() が使える案件。 問題へのリンク 問題概要 横の長さが であるカーテンレールに、横の長さが であるカーテン 2 枚を設置する。 カーテンレールのうち、カーテンが設置されていない部分の長さの最小値を求めよ。 解法 2 枚のカーテンを重なら…

AtCoder ABC 137 A - +-x (灰色, 100 点)

関数 max() を使おう! 問題へのリンク 問題概要 整数 が与えられる。 の最大値を答えよ。 解法 関数 max() を使えばよい。 #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; cout << max({A+B, A-B, A*B}) << endl; }</bits/stdc++.h>

AtCoder ABC 136 A - Transfer (灰色, 100 点)

if 文を使うか、関数 max() を使えば OK 問題へのリンク 問題概要 水を入れる容器が 2 つある。 容器 1 には水を ミリリットルまで入れることができ、水が ミリリットル入っている。 容器 2 には水が ミリリットル入っている。 容器 2 から容器 1 に入るだけ…

AtCoder ABC 133 A - T or T (9Q, 灰色, 100 点)

久しぶりの易しい問題! 問題へのリンク 問題概要 電車を使うと 1 人あたり 円かかります。 タクシーを使うと 人で 円かかります。 人で移動する最小料金はいくらか。 解法 A * N B のうちの小さい方を答えれば OK。関数 min() が使える。 #include <bits/stdc++.h> using n</bits/stdc++.h>…

AtCoder ABC 129 A - Airplane (7Q, 灰色, 100 点)

この頃によくあった 3 個の入力をどうのこうのする系! 問題へのリンク 問題概要 3 つの空港 A, B, C がある。 A-B 間の移動の所要時間は B-C 間の移動の所要時間は A-C 間の移動の所要時間は 今、これらの空港を順に訪れる (たとえば、B → A → C)。最短の所…

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

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

AtCoder ABC 098 A - Add Sub Mul (灰色, 100 点)

関数 max() の使い方に慣れていれば解ける! 問題へのリンク 問題概要 2 個の整数 が与えられる。 の最大値を答えよ。 解法 関数 max() を使えばよい。C++ では、3 個以上の最大値を答えるときは、次のコードのように {} で囲うようにしよう。 #include <bits/stdc++.h> usi</bits/stdc++.h>…

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

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

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

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

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

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

AtCoder ABC 066 A - ringring (8Q, 灰色, 100 点)

この時代の ABC にありがちな「3 つの入力」を扱う系の問題 問題へのリンク 問題概要 3 つの整数 が与えられる。 これらの整数から 2 つ選んで足した値の最小値を求めよ。 解法 関数 min() を使うのが楽だと思う。3 つから 2 つ選んだ和は の 3 パターンがな…

AtCoder ABC 052 A - Two Rectangles (9Q, 灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 縦・横の長さが である長方形と、縦・横の長さが である長方形が与えられる。 これらの長方形の面積のうち、大きい方の面積を答えよ。ただし、面積が等しい場合にはその面積を答…

AtCoder ABC 330 B - Minimize Abs 1 (5Q, 灰色, 200 点)

問題の理解がちょっと大変。数学の素養がないと厳しいかもしれない。 問題へのリンク 問題概要 正の整数 ( を満たす) が与えられる。 また、 個の整数 が与えられるので、各 について、次の条件を満たす整数 を求めよ。 である 以上 以下の任意の整数 に対し…

AtCoder ABC 329 B - Next (7Q, 灰色, 200 点)

昔の ABC B 問題って感じ! 問題へのリンク 問題概要 長さ の数列 が与えられる。すべての値が等しいわけではないことが保証される。 これらのうち、最大値でない中での最大値を求めよ。 解法 まず for 文を回すなどして、 個の値 の最大値を求める。たとえ…