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

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

配列のfor文

AtCoder ABC 064 B - Traveling AtCoDeer Problem (7Q, 灰色, 200 点)

ちょっと発想が必要な問題。 問題へのリンク 問題概要 個の家が並んでいる。 個目の家は座標 にある。このすべての家にプレゼントを配る。 好きな場所から開始し好きな場所で終了することができるとき、最小の移動距離を求めよ。 制約 考えたこと 下の図のよ…

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 153 B - Common Raccoon vs Monster (8Q, 灰色, 200 点)

for 文の練習問題! 問題へのリンク 問題概要 HP が であるモンスターを倒したい。 種類の必殺技を順に使っていく。 種類目の必殺技はモンスターの HP を だけ減らすことができる。 モンスターの HP を 0 以下にすることができるかどうかを判定せよ。 考えた…

AtCoder ABC 142 B - Roller Coaster (8Q, 灰色, 200 点)

for 文の練習問題! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 考えたこと for 文を用いて、 に対して、 以上であるかどうかを判定していこう。 以上:答えを表す変数を 1 増やす そうでない:何もしない というようにすれ…

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

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

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

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

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

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

AtCoder ABC 290 A - Contest Result (7Q, 灰色, 100 点)

配列の中に配列型式の添字を入れるような処理(A[B[i]] のような)を書けるようになろう! 問題へのリンク 問題概要 あるコンテストでは 問が出題され、配点はそれぞれ 点であった。 参加者のすぬけ君は、このうちの 問 問を解いた。 すぬけ君の得点はいくら…

AtCoder ABC 204 B - Nuts (8Q, 灰色, 200 点)

配列の要素を for 文で順に調べていけば良い系! 問題へのリンク 問題概要 本の木にそれぞれ 個の実がなっている。それぞれの木から実を収穫する。ただし、 実っている木の実が 10 個以下の木からは木の実を収穫しない 10 個以上の実があるならば、10 個を残…

AtCoder ABC 293 A - Swap Odd and Even (7Q, 灰色, 100 点)

言われた通りに処理していくだけだが、最初は意外と手こずるかもしれない。 問題へのリンク 問題概要 英小文字からなる長さ偶数の文字列 が与えられる。 の順に、 と を入れ替える。 操作後の文字列を出力せよ。 考えたこと C++ では文字列の最初の文字は 0 …

AtCoder ABC 368 A - Cut (7Q, 灰色, 100 点)

for 文を工夫しよう 問題へのリンク 問題概要 長さ の数列 が与えられる。 この数列の末尾の 個の要素を順序を保ったまま先頭に持ってきて得られる数列を出力せよ。 制約 考えたこと 次のように考え直すとよい。なお、0-indexed で考えている。 数列の 番目…

Chokudai SpeedRun 001 A - 最大値 (7Q)

個の整数の最大値を求めるだけの問題! 問題へのリンク 問題概要 個の整数 の最大値を求めよ。 制約 考えたこと まず、 個の整数 は配列として受け取るのがよいだろう。C++ であれば、vector<int> 型のデータとして受け取ることができる。 さて、これらの値の最大</int>…

AtCoder ABC 304 A - First Player (7Q, 灰色, 100 点)

「最小値となる添字を求める」というのは、呼吸するように書けるようになりたいところ! 問題へのリンク 問題概要 円周上に時計回りに人 が並んでいる。人 の名前は 、年齢は である(全員の年齢は相異なる)。 年齢が最小である人から開始して時計回りに 人…

AtCoder ABC 188 B - Orthogonality (8Q, 灰色, 200 点)

2 個の配列を同時に for 文を使って調べていこう! 問題へのリンク 問題概要 2 つの 次元ベクトル と が与えられて、 を満たすかどうかを判定せよ。 考えたこと 配列が 2 つあっても、for 文を用いて、共通の添字 を回しながらアクセスできる。 次のコードを…

AtCoder ABC 295 A - Probably English (7Q, 灰色, 100 点)

個の文字列の中に、条件を満たすものがあるかどうかを調べる問題! 問題へのリンク 問題概要 個の文字列 の中に、and, not, that, the, you であるものが存在するかどうかを判定せよ。 考えたこと C++ では、vector<string> 型で入力を受け取るとよい(変数名を W な</string>…

AtCoder ABC 277 A - ^{-1} (8Q, 灰色, 100 点)

線形探索法の基本問題! 問題へのリンク 問題概要 を並び替えてできる順列 が与えられる。 整数 が与えられるので、 を満たす を求めよ。 考えたこと まず順列 は、サイズ の vector<int> 型の変数 P として受け取ろう(C++)。このとき、 はそれぞれ P[0], P[1],</int>…

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

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

AtCoder ABC 294 B - ASCII Art (7Q, 灰色, 200 点)

二次元配列の練習問題 問題へのリンク 問題概要 の形状に並べられた行列が与えられる。行列の各要素は 0 以上 26 以下の整数値である。 今、この行列の各要素に対応して 0 は文字 '.' に 1〜26 はそれに対応するアルファベット文字に 置き換えて得られる の…

AtCoder ABC 306 B - Base 2 (7Q, 灰色, 200 点)

long long 型だとオーバーフローしてしまうので注意! unsigned long long 型なら大丈夫! 問題へのリンク 問題概要 0 と 1 からなる長さ 64 の数列 が与えられる。 の値を求めよ。 考えたこと 実は long long 型は、 以上 以下の整数しか表せない。今回扱う…

AtCoder ABC 115 B - Christmas Eve Eve (7Q, 灰色, 200 点)

for 文の練習問題! 問題へのリンク 問題概要 個の商品があって、それぞれ価格は 円である。これらをすべて購入する。 ただし、最高価格のものは半額となる。このとき、支払い金額の総和を求めよ。 制約 は偶数 解法 について、 総和を 最大値を としよう。…

AtCoder ABC 359 B - Couples (6Q, 灰色, 150 点)

条件を上手に言い換えて、探索しやすい感じにしよう! 問題へのリンク 問題概要 をちょうど 2 個ずつ含む数列 が与えられる。 次の条件を満たす の個数を求めよ。 「数列中の、値が であるような 2 つの要素は、ちょうど 1 個の他の要素を挟む」 制約 考えた…

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

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

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

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

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

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

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

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

鉄則本 A02 - Linear Search (8Q, ★1)

線形探索法の基本問題! 鉄則本の問題なので、解法はメモ程度に。 問題へのリンク 問題概要 個の整数 の中に、整数 が含まれるかどうかを判定せよ。 メモ for を使った全探索です! コード #include <bits/stdc++.h> using namespace std; int main() { // 入力 int N, X; c</bits/stdc++.h>…

AtCoder ABC 332 A - Online Shopping (8Q, 灰色, 100 点)

for 文と if 文の練習! 問題へのリンク 問題概要 種類のものを買う。 種類目のものは価格が 円であり、それを 個買う。 合計金額が 円未満ならば、さらに送料が 円加算される。総支払額を求めよ。 解法 まずは for 文を用いて、 の合計を求めよう。その値が…

AtCoder ABC 328 A - Not Too Hard (8Q, 灰色, 100 点)

これは A 問題らしい A 問題 問題へのリンク 問題概要 個の整数 のうち、 以下のものの総和を求めよ。 コード for 文を回していき、 以下であるかを判定して、 以下であるものを足していけば OK。 #include <bits/stdc++.h> using namespace std; int main() { int N, X; ci</bits/stdc++.h>…