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

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

灰色diff

AtCoder ABC 132 A - Fifty-Fifty (灰色, 100 点)

これはだいぶ難しい問題ですね! 問題へのリンク 問題概要 4 文字の文字列 が与えられる。 がちょうど 2 種類の文字からなり、それらの文字がちょうど 2 個ずつあるかどうかを判定せよ。 解法 色んな解法があると思われる。ここでは、 をアルファベット順に…

AtCoder ABC 131 A - Security (灰色, 100 点)

隣接要素を見る問題。それは何気に結構難しいことだとも思う。 問題へのリンク 問題概要 4 文字の文字列が与えられます。 隣り合う文字が等しい箇所が存在するならば "Bad"、そうでなければ "Good" と答えてください。 解法 次のいずれかを満たせば "Bad" と…

AtCoder ABC 130 A - Rounding (灰色, 100 点)

とても易しい if 文の問題 問題へのリンク 問題概要 整数 が与えられる。 が 未満のときは 0、 以上のときは 10 を出力せよ。 解法 が 未満であることは X < A と表せる。if 文を用いて処理を分岐すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { i</bits/stdc++.h>…

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

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

AtCoder ABC 128 A - Apple Pie (灰色, 100 点)

ちょっと整理が難しい文章題。 問題へのリンク 問題概要 りんごが 個、りんごの欠片が 個ある。 1 個のりんごを砕くと、りんごの欠片が 個できる 2 個のりんごの欠片を使うと、アップルパイが 1 個できる 今ある材料から、最大で何個のアップルパイが作れる…

AtCoder ABC 127 A - Ferris Wheel (灰色, 100 点)

if 文を上手に使おう! 問題へのリンク 問題概要 ある観覧車の利用料金は年齢に応じて次のとおりである。 13 歳以上は 円かかる。 6 歳以上 12 歳以下は 円の半額がかかる。( は偶数) 5 歳以下は無料 歳の高橋君が観覧車に乗るときの利用料金を求めよ。 解法…

AtCodewr ABC 126 A - Changing a Character (灰色, 100 点)

大文字小文字の扱いを考える。 問題へのリンク 問題概要 文字 'A'、'B'、'C' のみからなる長さ の文字列 が与えられる。 この文字列の 文字目を小文字にした文字列を出力せよ。 解法 文字目は S[K-1] と表せる。 文字 S[K-1] が 'A', 'B', 'C' のいずれかで…

AtCoder ABC 125 A - Biscuit Generator (灰色, 100 点)

という表現が何を言っているんだ......と戸惑うかもしれない。これは、要は「ちょうど 秒後」も含むよということを言っている。 問題へのリンク 問題概要 ビスケット起動装置を起動してから、 秒後にそれぞれビスケットを 枚生成する。 起動してから 秒間の…

AtCoder ABC 123 A - Five Antennas (灰色, 100 点)

ちょっと数学的な部分が難しい問題かもしれない。 問題へのリンク 問題概要 5 つのアンテナがこの順に一直線上に並んでいて、それぞれ座標値は () である。 2 つのアンテナは、距離が 以内であるとき、通信できる。 これらのアンテナの組であって、通信でき…

AtCoder ABC 122 A - Double Helix (灰色, 100 点)

文字の問題 問題へのリンク 問題概要 A, C, G, T のいずれかの文字が与えられる。 A と T、C と G がそれぞれ対になる。 与えられた文字に対して、対となる文字を出力せよ。 解法 if 文を使って処理しよう。 #include <bits/stdc++.h> using namespace std; int main() { ch</bits/stdc++.h>…

AtCoder ARC 167 A - Toasts for Breakfast Party (灰色, 300 点)

面白かった! 問題へのリンク 問題概要 個の正の整数 を 個のグループに分ける。ただし、どのグループの要素数も 1 個以上 2 個以下でなければならない。 最適なグループ分けをしたときの、各グループの要素の総和の二乗の総和の最小値を求めよ。 制約 考え…

AtCoder ABC 121 A - White Cells (灰色, 100 点)

過去に似た問題があった。その応用問題と言える。 問題へのリンク 問題概要 の白色のマス目がある。 行と 列を選んで、すべて黒色に塗った。 白色のマス目は何個残るか。 解法 白い部分をかき集めると、 の長方形となる。 #include <bits/stdc++.h> using namespace std; in</bits/stdc++.h>…

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

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

AtCoder ABC 119 A - Still TBD (7Q, 灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

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

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

AtCoder ABC 117 A - Entrance Examination (灰色, 100 点)

設定が結構難しく感じるかもしれない。実際の問いかけはとても簡単。 問題へのリンク 問題概要 世界 B で 時間進む間に、世界 A では 時間進む。 世界 B で 時間進む間に、世界 A では何時間進むかを求めよ。 解法 「世界 B での経過時間」を で割れば、「世…

AtCoder ABC 116 A - Right Triangle (灰色, 100 点)

直角三角形の面積を求める問題。 問題へのリンク 問題概要 ∠ ABC = 90° の直角三角形がある。 辺 AB, BC, CA の長さが与えられるので、直角三角形の面積を求めよ。 解法 直角を挟む二辺は、AB, BC であるから、面積は と計算できる。 実装するときには、整数…

AtCoder ABC 115 A - Christmas Eve Eve Eve (灰色, 100 点)

落ち着いて処理しよう。 問題へのリンク 問題概要 D=25 なら Christmas D=24 なら Christmas Eve D=23 なら Christmas Eve Eve D=22 なら Christmas Eve Eve Eve と出力するプログラムを作ってください。 解法 if-else 文や、switch 文を用いて処理しよう。 …

AtCoder ABC 114 A - 753 (灰色, 100 点)

論理演算子が使えるかが問われる。 問題へのリンク 問題概要 整数 が、7 または 5 または 3 であるかを判定せよ。 解法 if 文を用いればよい。「または」を判定するためには、論理演算子「||」が使える。 #include <bits/stdc++.h> using namespace std; int main() { int X</bits/stdc++.h>…

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

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

AtCoder ABC 112 A - Programming Education (灰色, 100 点)

最初に入力される値に応じて処理を分岐する問題! 問題へのリンク 問題概要 まず整数 を受け取る のとき:"Hello World" と出力せよ のとき:追加で整数 を入力として受け取り、 の値を出力せよ 解法 の値によって、最終的に受け取る入力の個数が変わる問題…

AtCoder ABC 111 A - AtCoder Beginner Contest 999 (灰色, 100 点)

文字列として処理する方が楽であろう。 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の各桁の値について、1 は 9 に変換し、9 は 1 に変換したものを出力せよ。 解法 整数ではなく、文字列として処理する方が楽だと思われる。各文字について、 '1' …

AtCoder ABC 110 A - Maximize the Formula (灰色, 100 点)

整理するのが難しい! 問題へのリンク 問題概要 3 個の 1 桁の整数 が与えられる。 このうちの 2 個を選んで並べて 2 桁の整数を作る。さらに、その残りの 1 個の整数をそれに足す。 こうしてできる整数の最大値を求めよ。 解法 たとえば、3 個の整数が のと…

AtCoder ABC 109 A - ABC33 (灰色, 100 点)

パリティの問題。ここのところ、算数や数学の問題が続いている。 問題へのリンク 問題概要 1 以上 3 以下の整数 が与えられる。 が奇数 となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。 解法 一般に、かけ算をするとき 偶数が 1 個でも含…

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

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

AtCoder ABC 107 A - Train (灰色, 100 点)

これまた重要な典型問題! 問題へのリンク 問題概要 両編成の列車の 両目は後ろから何両目か? 解法 前から 両目は、後ろから 両目 前から 両目は、後ろから 両目 ... 前から 両目は、後ろから 両目 というようになっていて、気づくのは「前から何両目か」と…

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

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

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

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

AtCoder ABC 104 A - Rated for Me (灰色, 100 点)

現代では古い設定となった問題。 問題へのリンク 問題概要 整数値 が与えられる。 が 1200 未満の場合は、"ABC" そうでなく が 2800 未満の場合は、"ARC" そうでない場合は、"AGC" と出力せよ。 解法 問題文で言われた通りに if-else 文で実装すれば OK。 #i…

AtCoder ABC 103 A - Task Scheduling Problem (灰色, 100 点)

この問題は意味を理解するのが大変だと思う! 問題へのリンク 問題概要 3 つの整数 が与えられる。これらを適切に並び替えたときの 1 番目と 2 番目の差 2 番目と 3 番目の差 の和として、考えられる最小値を求めよ。 解法 実際に幾つかのケースで手を動かし…