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

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

2023-12-01から1ヶ月間の記事一覧

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

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

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

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

AtCoder ABC 065 A - Expired? (灰色, 100 点)

これはちゃんと整理するの大変だと思う! 問題へのリンク 問題概要 ある商品は、賞味期限を過ぎてから 日後まではお腹を壊さずに食べることができる。一方、賞味期限を過ぎてから食べると美味しくありません。 その商品を、賞味期限の 日前に購入し、その日…

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 062 A - Grouping (灰色, 100 点)

ちょっと面倒な問題 問題へのリンク 問題概要 1 以上 12 以下の整数 が与えられる。これらが同じグループに属するかどうかを判定せよ。 解法 グループの番号を 0, 1, 2 などと名付けて、各整数をグループ番号に直す関数を用意するのが楽だと思う。 そして、 …

AtCoder ABC 061 A - Between Two Integers (灰色, 100 点)

C++ では if (A <= C <= B) では判定できないことに注意 問題へのリンク 問題概要 3 つの整数 が与えられる。 が 以上 以下であるかを判定せよ。 解法 C >= A かつ C <= B であるかを判定すれば OK。 Python なら if (A <= C <= B) で判定することもできる。…

AtCoder ABC 060 A - Shiritori (灰色, 100 点)

3 つの文字列がしりとりになっているかを判定する問題 問題へのリンク 問題概要 3 つの文字列 が与えられる。 これらが「しりとり」になっているかどうかを判定せよ。 解法 文字列 A の末尾の文字は A.back() で取得できる。 A.back() == B[0] かつ B.back()…

AtCoder ABC 059 A - Three-letter acronym (灰色, 100 点)

略語を求める問題! 問題へのリンク 問題概要 "atcoder beginner contest" のような文字列に対して、 "ABC" のように、先頭の文字を大文字にして繋げた文字列を求めよ。 解法 3 つの文字列 を入力として受け取って、その先頭の文字を大文字にして繋げれば OK…

AtCoder ABC 058 A - ι⊥l (灰色, 100 点)

が等差数列かどうかを判定する問題 問題へのリンク 問題概要 3 つの整数 が等差数列かを判定せよ。 すなわち、 であるかどうかを判定せよ。 解法 問題文の通りに、b - a == c - b かどうかを判定すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { in</bits/stdc++.h>…

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

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

AtCoder ABC 056 A - HonestOrDishonest (灰色, 100 点)

bool 型をうまく考える問題 問題へのリンク 問題概要 入力 が与えられる。 = 'H' のとき:AtCodeer 君は正直者である = 'D' のとき:AtCodeer 君は嘘つきである ここで、 = 'H' のとき:「TopCoDeer 君は正直者だ」と AtCodeer 君は発言した = 'D' のとき:…

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

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

AtCoder ABC 054 A - One Card Poker (灰色, 100 点)

やり方を工夫しないと迷いそう 問題へのリンク 問題概要 Alice と Bob は、それぞれ と書かれたカードを持っている。カードの数字は、 のいずれかである。カードの数字の強さは、 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 13 < 1 である。 Alice と …

AtCoder ABC 053 A - ABC/ARC (灰色, 100 点)

if 文の練習問題。 問題へのリンク 問題概要 整数 が与えられる。 ならば "ABC" ならば "ARC" を出力せよ。 解法 if 文で処理を分岐すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { int x; cin >> x; if (x < 1200) cout << "ABC" << endl; else c</bits/stdc++.h>…

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

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

AtCoder ABC 051 A - Haiku (灰色, 100 点)

文字列から "," を取り除く問題 問題へのリンク 問題概要 文字列 が与えられる。 は 19 文字であり、6 文字目と 14 文字目が ',' であることが保証される。 ',' を空白文字 ' ' に置き換えて得られる文字列を出力せよ。 たとえば、"haiku,atcoder,tasks" は …

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

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

AtCoder ABC 049 A - 居合を終え、青い絵を覆う (灰色, 100 点)

if 文を使う! 問題へのリンク 問題概要 英小文字 が与えられる。 が母音かどうかを判定せよ。 解法 が 'a', 'i', 'u', 'e', 'o' のいずれかであるかを if 文を用いて判定する。 #include <bits/stdc++.h> using namespace std; int main() { char c; cin >> c; if (c == 'a</bits/stdc++.h>…

JOIG 2023 E - 運河 (難易度 7)

UnionFind を使って、差分更新を頑張る! UnionFind はオンラインの処理を簡単に実現できることが強みで、それを問いかける教育的問題ですね。他にも「左右からの結果を前処理する」という典型テクも使います! 問題へのリンク 問題概要 のグリッドがあって…

JOIG 2023 D - コイン集め 2 (難易度 6)

データを上手に持って、差分更新する系の問題 問題へのリンク 問題概要 のグリッドがあって、各マスは文字 '#' か '.' のいずれかが書かれている。先手は '#' の個数が得点となり、後手は '.' の個数が得点となる。双方得点を最大化したい。 先手は行を 1 つ…

有理数 mod 998244353 の徹底解説!

AtCoder を攻略していく上で、 に慣れることは大きな課題です。特に、有理数 は、初見では何を言っているか分からないと感じる方も多いかもしれないですね。下図は ABC 323 E - Playlist の補足を表示したものです1。 本記事では、有理数 を徹底解説します!…