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

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

ABC-A

AtCoder ABC 390 A - 12435 (6Q, 灰色, 150 点)

A 問題としては、少し難しめな感じ。 問題へのリンク 問題概要 1, 2, 3, 4, 5 を並び替えて得られる数列 が与えられる。この数列に対して 「隣接する様子を swap する」 という操作をちょうど 1 回だけ行って、単調増加にできるかどうかを判定せよ。 考えた…

AtCoder ABC 388 A - ?UPC (9Q, 灰色, 100 点)

基本的な文字列操作の問題! 問題へのリンク 問題概要 文字列 が与えられる。 の先頭の文字に "UPC" を付け加えてできる文字列を出力せよ。 考えたこと 文字列 S の先頭の文字は S[0] によって取得できる。その文字を出力したあと、続けて "UPC" を出力すれ…

AtCoder ABC 389 A - 9x9 (8Q, 灰色, 100 点)

完全既出は珍しい! 問題へのリンク 問題概要 "6x4" のような、「一桁かける一桁」の計算を表す 3 文字の文字列 が与えられる。この計算結果を求めよ。 考えたこと この問題と完全に同じですね。 drken1215.hatenablog.com コード #include <bits/stdc++.h> using namespace</bits/stdc++.h>…

AtCoder ABC 387 A - Happy New Year 2025 (9Q, 灰色, 100 点)

久しぶりに簡単な問題の到来! 問題へのリンク 問題概要 正の整数 が与えられるので、 の二乗の値を出力せよ。 考えたこと の二乗は、 (A + B) * (A + B) によって計算できる。これを実装すればよい。 コード #include <bits/stdc++.h> using namespace std; int main() { i</bits/stdc++.h>…

AtCoder ABC 378 A - Full House 2 (6Q, 灰色, 100 点)

いろんな解法が考えられる。 問題へのリンク 問題概要 4 枚のカードがあって、それぞれのカードには整数 が書かれている。 ここに 1 枚カードを加え、フルハウスとできるか判定せよ。 制約 考えたこと 色んな解法が考えられるが、この手のものは「ソート」が…

AtCoder ABC 385 A - Equally (7Q, 灰色, 100 点)

場合分けを頑張ろう! 問題へのリンク 問題概要 3 つの整数 をいくつかのグループに分けて、各グループに含まれる整数の総和を等しくできるかを判定せよ。 考えたこと 次の 2 つの場合が考えられる。 2 つのグループに分けて、総和を等しくする 3 つのグルー…

AtCoder ABC 383 A - Humidifier 1 (6Q, 灰色, 150 点)

これ 150 点なのは解釈一致だし、難しいと思うけど、Difficulty が 19 とすごく低いのが驚き! 問題へのリンク 問題概要 今、時刻 0 で水は 0 L たまっている。 これから時刻 にそれぞれ水が L 注がれる。 なお、水が 1 L 以上あるとき、時刻が 1 経過するご…

AtCoder ABC 384 A - aaaadaa (8Q, 灰色, 100 点)

for 文の基本問題 問題へのリンク 問題概要 長さ の文字列 が与えられる。 の各文字について、文字 でないものをすべて文字 に置き換えたものを出力せよ。 考えたこと for 文の練習問題といえる。 for 文を用いて、 の各文字について、 であるかどうかを判定…

AtCoder ABC 381 A - 11/22 String (6Q, 灰色, 150 点)

ちゃんと整理するのは大変だ。落ち着いて整理しよう。 問題へのリンク 問題概要 長さ の文字列 が与えられる。 が "11/22 文字列" であるかどうかを判定せよ。 11/22 文字列であるとは、文字 1, /, 2 がこの順に並んでいて、1 と 2 の個数が等しいものをいう…

AtCoder ABC 382 A - Daily Cookie (7Q, 灰色, 100 点)

問題文がややこしい書き方をしているけど、「要するにこういうこと!」という言い換えができるといい。 問題へのリンク 問題概要 文字 ., @ からなる長さ の文字列 が与えられる。@ を左から順に 個だけ . に書き換える。 書き換えたあとの文字列に含まれる…

AtCoder ABC 380 A - 123233 (7Q, 灰色, 100 点)

ソートが使えるなら、それが楽だと思う 問題へのリンク 問題概要 6 桁の正の整数 が与えられる。 が次の条件を満たすかどうかを判定せよ。 1 をちょうど 1 個含む 2 をちょうど 2 個含む 3 をちょうど 3 個含む 解法 (1):1, 2, 3 の個数を数える方法 for 文…

AtCoder ABC 379 A - Cyclic (7Q, 灰色, 100 点)

3 つのものを扱う系の問題、昔はよく出ていた。 問題へのリンク 問題概要 各桁の値が 1〜9 である 3 桁の整数 abc が与えられる。 bca と cab を出力せよ。 考えたこと 整数値で受け取るよりは、3 つの char 型変数 a, b, c で受け取るのが楽。 そうすると、…

AtCoder ABC 378 A - Pairing (6Q, 灰色, 100 点)

これ意外と難しいと思う! 問題へのリンク 問題概要 4 個の整数 (1, 2, 3, 4 のいずれか) が与えられる。これら整数に対して、 「2 個同じ整数があったら 2 個まとめて消す」 という操作を最大で何回できるか? 考えたこと 整理が大変だけど、色んな解法があ…

AtCoder ABC 377 A - Rearranging ABC (7Q, 灰色, 100 点)

昔の ABC A 問題はこういうのよくあった! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。これを並び替えることで "ABC" に一致させることができるかどうかを判定せよ。 考えたこと 並び替えて "ABC" に一致する文字列は "ABC" "ACB" "BAC" "BCA" "…

AtCoder ABC 376 A - Candy Button (6Q, 灰色, 150 点)

「前回の値」を保持しながらシミュレーションする系 問題へのリンク 問題概要 ボタンを押すと、1 個の飴がもらえるが、前回飴をもらってから 秒間はもらえない。 高橋君は 回ボタンを押した。それぞれ 秒後に押した(これらは単調増加)。 何回飴をもらえた…

AtCoder ABC 375 A - Seats (7Q, 灰色, 100 点)

文字列を for 文で調べる系の問題 問題へのリンク 問題概要 文字 #, . からなる長さ の文字列 が与えられる。次の条件を満たす整数 の個数を求めよ。 = # = . = # 考えたこと 次のように考えると実装しやすい。 各 に対して、文字列 の 文字目から 3 文字文…

AtCoder ABC 374 A - Takahashi san 2 (7Q, 灰色, 100 点)

関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…

AtCoder ABC 373 A - September (7Q, 灰色, 100 点)

文字列、配列、for 文の練習 問題へのリンク 問題概要 文字列 が与えられる。 文字列 の長さが であるような の個数を求めよ。 考えたこと for 文を使って について、 if (S[i].size() == i) というように判定していけばよい。 コード #include <bits/stdc++.h> using names</bits/stdc++.h>…

AtCoder ABC 372 A - delete . (7Q, 灰色, 100 点)

continue 文が書けるとやりやすいと思われる。 問題へのリンク 問題概要 英小文字と文字 '.' からなる文字列 が与えられる。 から文字 '.' を除外してできる文字列を出力せよ。 考えたこと for 文を用いて文字列 の文字を順に見ていこう。その際に、 番目の…

AtCoder ABC 371 A - Jiro (6Q, 灰色, 150 点)

整理するのが大変な問題 問題へのリンク 問題概要 3 つの相異なる整数 がある(値は与えられない)。 これらの 3 つの整数の大小関係を表す 3 つの文字 が与えられる。たとえば が '<' であるとき、 であることを表す。 が '>' であるとき、 であることを表…

AtCoder ABC 370 A - Raise Both Hands (8Q, 灰色, 100 点)

else if 文と、論理演算子「&&」の練習。 問題へのリンク 問題概要 2 つの整数 が与えられる。 かつ のときは "Yes" かつ のときは "No" それ以外のときは "Invalid" を出力せよ。 考えたこと else if 文と、論理演算子「&&」を使って、次のように書ける。 #…

AtCoder ABC 369 A - 369 (6Q, 灰色, 100 点)

偶数と奇数に関する理解も問われる問題。 問題へのリンク 問題概要 2 つの整数 が与えられる。 「 を並び替えると等差数列をなす」 という条件をみたすような整数 が何通りあるか求めよ。 制約 解法 (1):数学的に解く まず、 の大小関係で場合分けして考え…

AtCoder ABC 274 A - Batting Average (7Q, 灰色, 100 点)

問題の条件をいかにうまく言い換えるか! 問題へのリンク 問題概要 2 つの整数 が与えられる()。 を小数点第四位を四捨五入して、小数点第三位まで表した結果を求めよ。 考えたこと を整数型ではなく、浮動小数点型として受け取って、B / A を計算して小数…

AtCoder ABC 275 A - Find Takahashi (7Q, 灰色, 100 点)

最大値を求めるとともに、その index も求めるという問題! 問題へのリンク 問題概要 高さが であるような 本の橋がある。これらの橋の高さは相異なる。 これらの橋のうち、最も高いものが何番目の橋であるかを答えよ。 考えたこと まず、単に「橋の高さの最…

AtCoder ABC 276 A - Rightmost (7Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 に含まれる文字 'a' のうち、最も右側にあるものについて、その添字を答えよ。ただし、'a' が含まれない場合は -1 を出力せよ。 考えたこと 「最も右側」という条件がなけれ…

AtCoder ABC 278 A - Shift (7Q, 灰色, 100 点)

問題文の操作を上手に言い換えて、for 文で処理できる形にしよう! 問題へのリンク 問題概要 長さ の数列 に対して、以下の操作を 回実施してできる数列を出力せよ。 数列の先頭の数値を削除し、末尾に 0 を挿入する 制約 考えたこと C++ では、数列は vector<int></int>…

AtCoder ABC 284 A - Sequence of Strings (7Q, 灰色, 100 点)

「 個の文字列を受け取ること」と「逆順に出力すること」の練習! 問題へのリンク 問題概要 個の文字列 が与えられる。 これらを の順に出力せよ。 制約 考えたこと まず、 個の文字列を受け取るためには、C++ では vector<string> 型というように「文字列の配列」を</string>…

AtCoder ABC 285 A - Edge Checker 2 (7Q, 灰色, 100 点)

規則性を発見しよう! この規則は今後セグメントツリーなどを学ぶときにも活用する! 問題へのリンク 問題概要 次の図において、 番目の頂点と 番目の頂点がつながっているかを判定せよ。 考えたこと 図を見ると、次の規則があることがわかる。 番号が であ…

AtCoder ABC 286 A - Range Swap (7Q, 灰色, 100 点)

意外と実装に手こずった人も多いかもしれない。上手に for 文で実装できる操作に言い換えていこう! 問題へのリンク 問題概要 長さ の数列 が与えられる。 今、 かつ をみたす 4 つの整数 が与えられる。 数列 の 番目から 番目の項までと、 番目から 番目の…

AtCoder ABC 282 A - Generalized ABC (8Q, 灰色, 100 点)

for 文を用いて 回処理していく系の問題 問題へのリンク 問題概要 整数 が与えられる。 英大文字を 'A' から昇順に 個繋げて得られる文字列を答えよ。 制約 考えたこと for 文を用いて、次のように実装すればよい。 for (int i = 0; i < K; i++) { // i 番目…