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

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

NoviSteps7Q

AtCoder ABC 357 B - Uppercase and Lowercase (7Q, 灰色, 200 点)

文字列の大文字・小文字変換もできるようにしていきたい。 問題へのリンク 問題概要 英大文字または英小文字からなる文字列 が与えられる。 大文字の個数が小文字の個数よりも多い場合は、すべて大文字に変換し、そうでない場合はすべて小文字に変換して出力…

AtCoder ABC 357 A - Sanitize Hands (7Q, 灰色, 100 点)

意外とミスりやすいかもしれない。慎重に for 文を書こう。 問題へのリンク 問題概要 個の正の整数 と、正の整数 が与えられる。 に対して、 を順に引いていく。このとき、 が負にならずに引ける最大個数を求めよ。 解法 実際に順番に から引いていって、 で…

AtCoder ABC 356 A - Subsegment Reverse (7Q, 灰色, 100 点)

整数値に対する for 文の練習!! 問題へのリンク 問題概要 数列 がある。 この 項目から 項目までを反転させてできる数列を出力せよ。 解法 for 文を用いて次のようにすればよい。 から までを順に出力する から までを逆順に出力する から までを順に出力…

AtCoder ABC 355 A - Who Ate the Cake? (7Q, 灰色, 100 点)

ちょっと算数チックな問題 問題へのリンク 問題概要 人 1, 2, 3 が容疑者に挙げられている。次の証言がある。 「人 は犯人ではない」 「人 は犯人ではない」 犯人を特定できるかどうかを判定し、特定できるならば犯人を答えよ。 制約 は 1, 2, 3 のいずれか …

AtCoder ABC 052 B - Increment Decrement (7Q, 灰色, 200 点)

文字列の動きをシミュレーションしながら最大値も更新していく! 問題へのリンク 問題概要 整数 を持っていて、最初は 0 である。 長さ の文字列 に従って、これを使って [tex] N] 回の操作を行った。 回目の操作では、文字 が 'I' ならば を 1 増やし、'D' …

AtCoder ABC 049 B - たてなが (7Q, 灰色, 200 点)

二次元グリッドの基本問題 問題へのリンク 問題概要 のグリッドが与えられる。各マスの文字は '.' か '*' である。 このグリッドを縦方向に 2 倍に引き伸ばして出力せよ。 解法 個の文字列の入力を受け取り、各行ごとに 2 回ずつ出力していけば OK。 #includ…

AtCoder ABC 112 B - Time Limit Exceeded (7Q, 灰色, 100 点)

「線形探索」と「最小値を求める」の組み合わせ技! 問題へのリンク 問題概要 個のペア値 が与えられる。 を満たすような についての、 の最小値を求めよ。そのような が存在しない場合は "TLE" と出力せよ。 解法 for 文を用いて、各 i について t[i] <= T …

AtCoder ABC 265 A - Apple (7Q, 灰色, 100 点)

ちょっと頭を使う系の問題。この時期の ABC-A にはこういうものが多かったね。 問題へのリンク 問題概要 りんごをちょうど 個買いたい 円払って 個買う 円払って 個買う のいずれかによって、ちょうど 個買うための最小コストを求めよ。 解法 以下のいずれか…

AtCoder ABC 351 B - Spot the Difference (7Q, 灰色, 200 点)

二次元配列を二重 for 文で調べる最低ライン! 問題へのリンク 問題概要 のグリッドにアルファベット文字が書かれたものが 2 つ () 与えられます。 これらは 1 箇所のみ異なっていることが保証されます。 であるような を答えてください。 制約 解法 (C++) …

AtCoder ABC 351 A - The bottom of the ninth (7Q, 灰色, 100 点)

現実世界っぽい題材を扱ったちょっと楽しい問題。 問題へのリンク 問題概要 チーム A とチーム B が野球対戦をし、9 回表まで終了していて、 (チーム A の得点) ≧ (チーム B の得点) となっている。チーム B が 9 回裏で勝利するのに必要な最小追加点を求め…

AtCoder ABC 205 B - Permutation Check (7Q, 灰色, 200 点)

いろんな方法が考えられる! 問題へのリンク 問題概要 1 以上 以下の整数からなる数列 が与えられます。 この数列が を並び替えられることで得られるかどうかを判定せよ。 制約 考えたこと 問題文は「 を並び替えることで に一致させられるか」を問いかける…

AtCoder ABC 353 A - Buildings (7Q, 灰色, 100 点)

break を忘れずに! 問題へのリンク 問題概要 数列 が与えられる。 を満たす最小の を求めよ (存在しなければ -1 を出力せよ)。 解法 for 文を用いて、調べていこう。 条件を満たすような最小の を求めたいので、for 文での探索中に見つかったら、その瞬間に…

鉄則本 A03 - Two Cards (7Q, ★1)

二重 for 文の練習! 鉄則本の例題なので解法はメモ程度に。 問題へのリンク 問題概要 2 つの数列 と が与えられる。 これらから要素を 1 つずつ選び、和が となるようにすることが可能か判定せよ。 メモ 二重の for 文を使おう! コード #include <bits/stdc++.h> using na</bits/stdc++.h>…

鉄則本 B02 - Divisor Check (7Q, ★1)

整数に対する for 文を用いての全探索です! 問題へのリンク 問題概要 以上 以下の整数のうち、100 の約数であるものは存在するか、判定せよ。 解法 github.com コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; bool res = fa</bits/stdc++.h>…

AtCoder ABC 352 A - AtCoder Line (7Q, 灰色, 100 点)

算数系の問題! 問題へのリンク 問題概要 解法 入力の中に が含まれるが、これは結局使わない。こういう変数に惑わされないようにしよう。次の 2 つの場合に分けて考える。 のとき (上りのとき) のとき (下りのとき) 前者の場合は、"Yes" となる条件は と書…

AtCoder ABC 350 A - Past ABCs (7Q, 灰色, 100 点)

構文解析の初歩ですね。C++ なら、scanf() 関数を使うと楽ですね。 問題へのリンク 問題概要 "ABC197" のような長さ 6 の文字列 が与えられる。 何回目の ABC であるかを判定し、それが 316 回を除く、1〜349 回のいずれかであるかどうかを判定せよ。 解法 C…

AtCoder ABC 227 A - Last Card (7Q, 灰色, 100 点)

これは難しいですね。何も考えずに for 文で求めるのが比較的楽でしょうか。 問題へのリンク 問題概要 と番号のついた 人に、 枚のカードを配っていく。 人 から始めて、人 の順に 1 枚ずつカードを配るとき、最後のカードは誰に配られるでしょうか? 解法 1…

AtCoder ABC 226 A - Round decimals (7Q, 灰色, 100 点)

色んな方法がありそう! 問題へのリンク 問題概要 0 以上 100 未満の小数第三位までで表すことのできる実数 が、小数第三位まで入力されます。 を小数第一位で四捨五入した結果として得られる整数を出力してください。 考えたこと C++ で解く場合、入力は ci…

AtCoder ABC 225 A - Distinct Strings (7Q, 灰色, 100 点)

これ結構難しいと思う! 数学 IA の「場合の数」をやると、よく出て来るやつですね。 問題へのリンク 問題概要 英小文字のみからなる長さ 3 の文字列 が与えられます。 の各文字を並び替えて得られる文字列は、何種類ありますか? 解法 「3 個のものを並び替…

AtCoder ABC 220 A - Find Multiple (7Q, 灰色, 100 点)

for 文を用いるのが楽だと思う。 問題へのリンク 問題概要 以上 以下の の倍数が存在するならば 1 つ求め、存在しない場合は -1 を出力せよ。 制約 考えたこと for 文を用いるのが最も楽だと思う。 について、 で割り切れるかどうかを判定していき、 割り切…

AtCoder ABC 191 A - Vanishing Pitch (灰色, 100 点)

不等式の問題! 問題へのリンク 問題概要 高橋君の投げたボールは、速度 で移動し、 秒後から 秒後の間に消える。 ボールから m の位置にいる青木君にとって、ボールが消えていないかどうかを判定せよ。 解法 消えている条件を不等式で書くと、次のようにな…

AtCoder ABC 187 A - Large Digits (灰色, 100 点)

文字列として処理した方が楽。 問題へのリンク 問題概要 3 桁の正の整数 が与えられる。これらの整数の桁和の最大値を求めよ。 制約 整数 はそれぞれ文字列として受け取った方が楽だと思われる。そうすると、 たとえば、3 桁の整数を表す文字列 A について …

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

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

AtCoder ABC 165 A - We Love Golf (7Q, 灰色, 100 点)

色んな解法がある! この手の数値的なものに対して「全探索」という解法を選択肢に持てるようにしていこう。 問題へのリンク 問題概要 3 個の正の整数 が与えられる。次の条件を満たす整数が存在するかどうかを判定せよ。 の倍数である 以上 以下である 制約…

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

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

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

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

AtCoder ABC 307 A - Weekly Records (7Q, 灰色, 100 点)

for 文の練習。色んな書き方がありそう。 問題へのリンク 問題概要 高橋君は 週間歩いた距離を記録した。 日目には、それぞれ 歩歩いた。 各週について、高橋君が 1 週間で歩いた歩数の合計を出力してください。 解法 前提として、配列を 0 始まりで考えるこ…

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

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

AtCoder ABC 327 A - ab (7Q, 灰色, 100 点)

文字列の練習! 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。 この文字列 中に、文字 'a' と 'b' が隣接する箇所があるかどうかを判定せよ。 考えたこと for 文を用いて判定していく。添字 i を回していき、 S[i] == 'a' and S[i+…

AtCoder ABC 046 A - AtCoDeerくんとペンキ (7Q, 灰色, 100 点)

3 つの整数についてあれこれ問う問題はこの時代多かった 問題へのリンク 問題概要 3 個の整数 がある。これらは 1 以上 100 以下の整数である。 これらの整数の種類数を求めよ。 コード この手の問題は、「配列として受け取ってソートする」テクニックが使え…