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

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

for文

JOIG 2024 A - 三連続 (難易度 2)

for 文の練習問題! 問題へのリンク 問題概要 o と x からなる長さ の文字列 が与えられる。 の中に o が 3 つ連続している箇所があれば "Yes" を出力し、そうでなければ "No" を出力せよ。 制約 考えたこと for 文を用いて判定しよう。具体的には、各 i に…

AtCoder ABC 111 A - AtCoder Beginner Contest 999 (灰色, 100 点)

文字列として処理する方が楽であろう。 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の各桁の値について、1 は 9 に変換し、9 は 1 に変換したものを出力せよ。 解法 整数ではなく、文字列として処理する方が楽だと思われる。各文字について、 '1' …

AtCoder ABC 101 A - Eating Symbols Easy (灰色, 100 点)

こういう問題、昔は長さが固定されているから for 文は要らないとされて出題されていたけど、この問題を for 無しで書くのは縛りプレイ感がある。素直に for 文を使った方が楽だと思う! 問題へのリンク 問題概要 4 文字の文字列 が与えられる。各文字は "+"…

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

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

AtCoder ABC 333 A - Three Threes (灰色, 100 点)

for 文の練習 問題へのリンク 問題概要 1 以上 9 以下の整数 が与えられる。 を 個ならべた文字列を出力せよ。 解法 for 文で を 回出力しよう。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; for (int i = 0; i < N; ++i) cout << N; cou</bits/stdc++.h>…

AtCoder ABC 081 A - Placing Marbles (灰色, 100 点)

ABS にも採用した問題! 問題へのリンク 問題概要 長さが 3 の文字列 が与えられる。この文字列の文字は '0' か '1' である。 '1' が何文字あるかを答えよ。 解法 3 文字それぞれについて、'1' かどうかを調べれば OK。 #include <bits/stdc++.h> using namespace std; int </bits/stdc++.h>…

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

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

AtCoder ABC 330 A - Counting Passes (灰色, 100 点)

最近、易しめのいい感じの A 問題多いね! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 解法 配列を使って入力を受け取って、for 文を使って配列の要素を 1 個 1 個見ていけばいい。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 329 D - Election Quick Report (灰色, 350 点)

「差分更新」の良い練習問題! 問題へのリンク 問題概要 以上 以下の整数からなる長さ の数列 が与えられる。 各 に対して、 の中で最も多く登場する値を答えよ。複数個ある場合はそのうちの最小の値を答えよ。 制約 考えたこと この問題のように、各 に対し…

AtCoder ABC 329 B - Next (灰色, 200 点)

昔の ABC B 問題って感じ! 問題へのリンク 問題概要 長さ の数列 が与えられる。すべての値が等しいわけではないことが保証される。 これらのうち、最大値でない中での最大値を求めよ。 解法 まず for 文を回すなどして、 個の値 の最大値を求める。たとえ…

AtCoder ABC 329 A - Spread (灰色, 100 点)

与えられた文字列を空白区切りで出力する問題。なお、末尾に空白が入っていても AC になる! 問題へのリンク 問題概要 文字列 が与えられるので、各文字を空白区切りで出力せよ。 解法 次のコードのように、文字列 の各文字 について、 文字 を出力する 空白…

AtCoder ABC 306 A - Echo (灰色, 100 点)

これは最近の ABC A 問題では易しめ!! 問題へのリンク 問題概要 文字列 が与えられる。この文字列の各文字を 2 回ずつ繰り返した文字列を出力せよ。 たとえば、"beginner" は "bbeeggiinnnneerr" となる。 コード for 文を用いて、文字列 の各文字 を順に…

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

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

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

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

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

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

AtCoder ABC 328 B - 11/11 (灰色, 200 点)

少し複雑めの全探索。 問題へのリンク 問題概要 1 年が ヶ月からなる暦がある。 月はそれぞれ 日ある。 この暦において、ゾロ目に日付は何日あるかを答えよ。 制約 考えたこと について順に調べていけば良い。 自体がゾロ目でないとダメ がゾロ目なら、その…

AtCoder ABC 327 B - A^A (灰色, 200 点)

素直に for 文で探索すればよいのだけど、意外と A をどこまで探索すればいいのかの判断も難しくて、戸惑った人も多いかもしれない。 問題へのリンク 問題概要 正の整数 が与えられる。 となる正の整数 を求めよ。存在しない場合は -1 を出力せよ。 制約 考…

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

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

AtCoder ABC 294 A - Filter (灰色, 100 点)

これは易しめの A 問題! 問題へのリンク 問題概要 長さ の数列 が与えられる。 これらの数値の中から偶数のみを抽出せよ。 考えたこと for 文を回していって、偶数のみ出力すればよい。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vect</bits/stdc++.h>…

AtCoder ABC 299 A - Treasure Chest (灰色, 100 点)

3 重の for 文を書くのが楽だと思う 問題へのリンク 問題概要 3 種類の文字 .、|、* からなる、長さ の文字列 が与えられる。 には | がちょうど 2 つ、* がちょうど 1 つ含まれる。 * が 2 つの | に挟まれているかどうかを判定せよ。 考えたこと 色々な解…

AtCoder ABC 261 B - Tournament Result (灰色, 200 点)

二次元配列を調べる練習問題! 問題へのリンク 問題概要 人のリーグ戦の戦績表が下図のように与えられる。'W' は勝ち、'L' は負け、'D' は引き分けを表す。また、対角線上は '-' である。 4 -WWW L-DD LD-W LDW- この戦績表が矛盾しているかどうかを調べよ。…

AtCoder ABC 326 B - 326-like Numbers (灰色, 200 点)

整数 が 326-like 数かどうかを判定する処理が書ければ、この問題は解ける。 問題へのリンク 問題概要 整数 が 326-like 数であるとは、3 桁の正の整数であって、百の位と十の位の積が一の位に等しいことをいう。 与えられた整数 以上の、最小の 326-like 数…

AtCoder ABC 319 B - Measure (灰色, 200 点)

問題文で書かれた通りに実装するだけなのだが、問題文の内容を理解するのが大変で、戸惑った人も多いかもしれない。 問題へのリンク 問題概要 正の整数 が与えられるので、次のようにして定まる 文字の文字列 を出力せよ。 に対して、1 以上 9 以下の の約数…

AtCoder ABC 325 B - World Meeting (灰色, 250 点)

会議設定時間を 0 時、1 時、2 時、...、23 時をそれぞれ全探索するのが一番分かりやすいと思う! 問題へのリンク 問題概要 キーエンス社員の 個の拠点に対して同時に会議を設定したい。拠点 には社員が 人いて、時差 (世界標準時で 0 時のときの時刻) は で…

AtCode ABC 320 A - Leyland Number (灰色, 100 点)

for 文の練習 問題へのリンク 問題概要 正の整数 が与えられる。 の値を求めよ。 コード とは、 を 回かけた値である。よって、次のように for 文で求められる。 long long res = 1; for (int i = 0; i < B; ++i) { // A をかける操作を B 回行う res *= A; …

AtCoder ABC 324 A - Same (灰色, 100 点)

これも条件をうまく言い換えることが大切になる問題 問題へのリンク 問題概要 個の整数 が与えられる。 これらの値がすべて等しいかどうかを判定せよ。 コード すごく色んな解法がある!!!! 個人的に最も楽だと思うのは、 に対して、 ならば Yes そうでな…

AtCoder ABC 324 C - Error Correction (茶色, 300 点)

C 問題としてはかなりハードな問題であった。 問題へのリンク 問題概要 個の文字列 のうち、文字列 との編集距離が 1 以下であるものの個数を求めよ。 なお、文字列 と文字列 の編集距離が 1 以下であるとは、以下のいずれかが成り立つことを指す。 である …

AtCoder ABC 323 A - Weak Beats (灰色, 100 点)

添字の偶奇によって処理を分岐する系 問題へのリンク 問題概要 0 と 1 のみからなる、16 文字の文字列 が与えられる。 の左から偶数番目の文字がすべて '0' であるかどうかを判定せよ。 コード 先頭が S[0] なので、S[1], S[3], ..., S[15] の中に 1 がある…

AtCoder ABC 043 A - キャンディーとN人の子供イージー (灰色, 100 点)

等差数列の和の公式を使ってもいいし、素直に for 文を足してもいい。 問題へのリンク 問題概要 正の整数 が与えられる。 の値を答えよ。 解法 1 素直に for 文で足していく方法。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; int res = </bits/stdc++.h>…

AtCoder ABC 322 C - Festival (灰色, 300 点)

for 文を回していくときに「前回の値を活用する」というテクが登場する問題。このテクは、後に「累積和」や「DP」を学ぶ際の大切な基礎となる。 問題へのリンク 問題概要 日間のうち、 日目には花火が上がる。 各日について、何日後に最初の花火が上がるかを…