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

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

ABC-A

AtCoder ABC 255 A - You should output ARC, though this is ABC. (7Q, 灰色, 100 点)

二次元配列の練習問題! 問題へのリンク 問題概要 整数 と、2 行 2 列からなる行列 が与えられるので、 を出力せよ。 解法 2 行 2 列の行列は、次のような 2 次元の配列で実装できる。 int A[2][2]; そうすると、 行目 列目の要素は、A[R][C] と表せる。 コ…

AtCoder ABC 251 A - Six Characters (8Q, 灰色, 100 点)

少し面白い問題! 問題へのリンク 問題概要 長さが 1, 2, 3 のいずれかの文字列 が与えられる。 を繰り返して得られる文字列であって、長さが 6 であるものを答えよ。 考えたこと 次のように考えれば良い。 の長さが 1 のとき: を 6 回繰り返す の長さが 2 …

AtCoder ABC 247 A - Move Right (8Q, 灰色, 100 点)

上手に解釈して問題を解こう! 問題へのリンク 問題概要 0 と 1 のみからなる長さ 4 の文字列 が与えられる。この文字列は、4 マスからなる各マスに人がいるかどうかを表す。 はそのマスに人がいることを表し、 は人がいないことを表す。 今、人がみな右へ移…

AtCoder ABC 244 A - Last Letter (9Q, 灰色, 100 点)

文字列の末尾の文字を取得する方法を確認しておこう! 問題へのリンク 問題概要 長さ の文字列 が与えられる。 の末尾の文字を出力せよ。 解法 C++ では、文字列 S の末尾の文字は S.back() によって取得できます。 別解 文字列 S の長さが であるとき、末尾…

AtCoder ABC 343 A - Wrong Answer (8Q, 灰色, 100 点)

パズルのような問題! 問題へのリンク 問題概要 0 以上 9 以下の 2 つの整数 が与えられる。 0 以上 9 以下の整数のうち、 とは異なるものを 1 つ求めよ。 考えたこと もし でなければ、0 を出力すれば事足りる。 もし であるならば、0 以外の数 (たとえば 1…

AtCoder ABC 346 A - Adjacent Product (7Q, 灰色, 100 点)

for 文を回しながら、隣接要素を見ていく練習をしよう! 問題へのリンク 問題概要 個の整数 が与えられる。 に対して、 の値を順に求めよ。 制約 考えたこと for 文を回しながら、隣の要素も同時に見ていくスキルを習得しよう! コード #include <bits/stdc++.h> using name</bits/stdc++.h>…

AtCoder ABC 347 A - Divisible (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 個の整数 が与えられる。 これらのうち、 で割り切れるものについて、 で割った値を順に出力せよ。 考えたこと 入力を配列 (C++ ならば vector 型など) で受け取り、for 文を使って配列の各要素にアクセスしていこう…

AtCoder ABC 348 A - Penalty Kick (8Q, 灰色, 100 点)

ooxooxooxoox... を出力する問題 問題へのリンク 問題概要 髙橋君はサッカーの試合で 回ペナルティキックを蹴る。3 の倍数回目は失敗する。 回分のキックの結果を出力せよ。 解法 for 文を用いて、 について が 3 の倍数のとき:文字 'x' を出力 そうでない…

AtCoder ABC 349 A - Zero Sum Game (7Q, 灰色, 100 点)

数学の部分を乗り越えることが難しいかもしれない。 問題へのリンク 問題概要 人 が、一対一の勝敗のつくゲームを何度か行った。 人の最初の持ち点は 0 点である。 各ゲームでは勝者の持ち点が 1 増え、敗者の持ち点が 1 減る。(持ち点が負になることもある…

AtCoder ABC 241 A - Digit Machine (7Q, 灰色, 100 点)

「グラフ」の基礎になるような、配列上のシミュレーションの問題。 問題へのリンク 問題概要 整数 が与えられる。 このとき、ボタンを押すと、画面の数値 () が に変わる。 最初の数値が 0 であるとき、ボタンを 3 回押すと、どんな数値に変わるか? 考えた…

AtCoder ABC 361 A - Insert (7Q, 灰色, 100 点)

for 文の練習問題。 問題へのリンク 問題概要 長さ の整数列 が与えられる。 この数列の 番目の要素の直後に値 を挿入して得られる数列を出力せよ。 解法 (1):関数 erase() を利用する C++ では、vector 型変数 A に対して、 番目に値 を挿入する処理は A.i…

AtCoder ABC 358 A - Welcome to AtCoder Land (8Q, 灰色, 100 点)

if 文の練習! 問題へのリンク 問題概要 2 つの文字列 が与えられる。 = "AtCoder" かつ = "Land" であるかを判定せよ。 解法 = "AtCoder" であるかどうかは if (S == "AtCoder") によって判定できる。 についても同様である。 よって、 = "AtCoder" かつ = …

AtCoder ABC 359 A - Count Takahashi (7Q, 灰色, 100 点)

基本的な for 文の問題 問題へのリンク 問題概要 個の文字列が与えられる。各文字列は "Takahashi" か "Aoki" のいずれかである。 "Takahashi" が何個あるかを数えよ。 解法 個の文字列を順に受け取って、"Takahashi" と一致するものを数えれば良い。 #inclu…

AtCoder ABC 360 A - A Healthy Breakfast (7Q, 灰色, 100 点)

条件をいい感じに整理しよう 問題へのリンク 問題概要 文字 'R'、'M'、'S' を 1 文字ずつ含む長さ 3 の文字列 が与えられる。 この文字列 において、文字 'R' が文字 'M' よりも左側にあるかどうかを判定せよ。 考えたこと 文字 'R' が文字 'M' よりも左側に…

AtCoder ABC 269 A - Anyway Takahashi (9Q, 灰色, 100 点)

標準入出力と、四則演算の演算子の使い方を確認する問題。 問題へのリンク 問題概要 4 個の整数 が与えられる。 1 行目には、 の値を出力し、 2 行目には、"Takahashi" と出力せよ。 解法 標準入力を用いて整数値 の値を受け取ります。 その後、1 行目には (…

AtCoder ABC 111 B - AtCoder Beginner Contest 111 (6Q, 灰色, 100 点)

探索してしまうのが楽だと思われる。 問題へのリンク 問題概要 整数値 が与えられる。 以上の整数のうち、最小のゾロ目の数を答えよ。 制約 考えたこと 基本的には、次の方針がとれそうだ。 の順に探索し、最初に がゾロ目である瞬間を捉えて、 を出力する。…

AtCoder ABC 240 A - Edge Checker (8Q, 灰色, 100 点)

上手に考えることで、実装が複雑になりすぎないようにしたい。 問題へのリンク 問題概要 次の図で 番と 番がつながっているかどうかを判定せよ。 制約 考えたこと という制約を考慮すると、Yes となる場合は、次の 10 通りの場合がある。 これらを順に判定し…

AtCoder ABC 239 A - Horizon (8Q, 灰色, 100 点)

平方根の求め方を確認しておこう 問題へのリンク 問題概要 地上 メートルの高さから見える水平線までの距離は と表される。 地上 メートルの高さから見える水平線までの距離を求めよ。 制約 は整数 解法 の値を求めればよい。 C++ では、 は関数 sqrt() を用…

AtCoder ABC 238 A - Exponential or Quadratic (6Q, 灰色, 100 点)

ちゃんと証明しようとすると、数学的帰納法などが必要になるが、推測して答えてもいいと思う。 問題へのリンク 問題概要 正の整数 が与えられる。 が成り立つかどうかを判定せよ。 制約 解法 この手の問題では、小さな で実験してみよう! そうすれば法則性…

AtCoder ABC 237 A - Not Overflow (7Q, 灰色, 100 点)

オーバーフローについて学ぶ問題。 問題へのリンク 問題概要 与えられた整数 が 以上 未満であるかどうかを判定せよ。 解法 まず、 以上 未満に収まらないような数は int 型では扱えない。long long 型を使おう。 そして、 は 1LL<<31 と表せる。ここで、念…

AtCoder ABC 236 A - chukodai (8Q, 灰色, 100 点)

文字列の index アクセスと、操作 swap をする問題 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 の 文字目と 文字目を sawp して得られる文字列を答えよ。 解法 文字列 S の a 文字目は S[a-1] で取得できる。b 文字目は S[b-1] で取得…

AtCoder ABC 235 A - Rotate (7Q, 灰色, 100 点)

上手くやろう! 問題へのリンク 問題概要 3 桁の整数 が与えられるので、 の値を求めよ。 解法 まず、整数 の値を取得しよう。いろんな方法が考えられるが、3 桁の整数を文字列として入力を受け取り、0 文字目、1 文字目、2 文字目の値を見るのが簡単だと思…

AtCoder ABC 234 A - Weird Function (7Q, 灰色, 100 点)

数学の関数と、プログラミングにおける関数を繋げよう! 問題へのリンク 問題概要 関数 を とする。 与えられた整数 に対して、 を求めよ。 制約 は 0 以上 10 以下の整数 解法 関数 を、プログラムにおける「関数」として実装しよう。 コード #include <bits/stdc++.h> usi</bits/stdc++.h>…

AtCoder ABC 233 A - 10yen Stamp (8Q, 灰色, 100 点)

切り上げ処理の練習! 問題へのリンク 問題概要 円ある。10 円増やすことを繰り返して 円以上になるようにしたい。 10 円増やす操作を最小で何回やればよいかを求めよ。 解法 まず、 のときは、もともと 10 円を増やす必要はないので 0 回になる。 の場合は…

AtCoder ABC 232 A - QQ solver (8Q, 灰色, 100 点)

構文解析の基本問題 問題へのリンク 問題概要 "6x4" のような、3 文字の文字列 が与えられる。この計算結果を求めよ。 解法 1 個目の整数値は文字 S[0] を読み取ればよい。これを整数値にするためには、C++ では次のように書ける。 int a = S[0] - '0'; 2 個…

AtCoder ABC 231 A - Water Pressure (9Q, 灰色, 100 点)

算数的な感覚を磨こう! そして、浮動小数点型の値の出力方法を確認しよう。 問題へのリンク 問題概要 水圧は水深のみに依存し、水深 [m] の場所では [MPa] になるものとします。 水深 [m] の場所の水圧は何 [MPa] ですか? 解法 答えは MPa となる。 ただし…

AtCoder ABC 230 A - AtCoder Quiz 3 (9Q, 灰色, 100 点)

N の値に応じて、N の値を 1 上げよう。 問題へのリンク 問題概要 回目に開催された "AGC" を、たとえば "AGC051" のように出力せよ。 なお、"AGC042" は存在せずに欠番になっているため。42 回目の AGC は "AGC043" であり、43 回目の AGC は "AGC044" であ…

AtCoder ABC 229 A - First Grid (7Q, 灰色, 100 点)

上手に考えよう! 問題へのリンク 問題概要 2 × 2 グリッドが与えられる。各マスは白黒に塗られている。 黒色マスの文字は '#' で与えられ、白色マスの文字は '.' で与えられる。黒色マスがすべて連結しているかどうかを判定せよ。 解法 まず、2 × 2 のグリ…

AtCoder ABC 336 A - Long Loong (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 1 個の "L"、 個の "o"、1 個の "n"、1 個の "g" をこの順に連結して得られる文字列を出力せよ。 解法 途中の「 個の "o"」を出力する部分では for 文が使える。 コード #include <bits/stdc++.h> using namespace std; int main() </bits/stdc++.h>…

AtCoder ABC 341 A - Print 341 (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 正の整数 が与えられる。 個の 0 と 個の 1 を交互に並べた文字列を出力せよ。 解法 色んな解法が考えられるが、ここでは次のように解釈した。 "10" を 回出力する 最後に "1" を出力する コード #include <bits/stdc++.h> using na</bits/stdc++.h>…