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

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

灰色diff

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

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

AtCoder ABC 110 A - Maximize the Formula (灰色, 100 点)

整理するのが難しい! 問題へのリンク 問題概要 3 個の 1 桁の整数 が与えられる。 このうちの 2 個を選んで並べて 2 桁の整数を作る。さらに、その残りの 1 個の整数をそれに足す。 こうしてできる整数の最大値を求めよ。 解法 たとえば、3 個の整数が のと…

AtCoder ABC 109 A - ABC33 (灰色, 100 点)

パリティの問題。ここのところ、算数や数学の問題が続いている。 問題へのリンク 問題概要 1 以上 3 以下の整数 が与えられる。 が奇数 となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。 解法 一般に、かけ算をするとき 偶数が 1 個でも含…

AtCoder ABC 108 A - Pair (灰色, 100 点)

「場合の数」の問題! 問題へのリンク 問題概要 1 以上 以下の正の整数から、偶数と奇数ひとつずつの組を選ぶ方法の個数を求めてください。 なお、選ぶ順番は考慮しません。 解法 まず、1 以上 以下の整数のうち、偶数の個数は K / 2 個である。よって奇数の…

AtCoder ABC 107 A - Train (灰色, 100 点)

これまた重要な典型問題! 問題へのリンク 問題概要 両編成の列車の 両目は後ろから何両目か? 解法 前から 両目は、後ろから 両目 前から 両目は、後ろから 両目 ... 前から 両目は、後ろから 両目 というようになっていて、気づくのは「前から何両目か」と…

AtCoder ABC 106 A - Garden (灰色, 100 点)

まさに算数!って感じの問題! 問題へのリンク 問題概要 下図のように、 の長方形領域から、縦横に幅 1 の道路がある。道路以外の部分の面積はいくらか? 解法 算数の典型問題! 道路の幅を除くと、縦の長さは 、横の長さは となるので、求める面積は となる…

AtCoder ABC 105 A - AtCoder Crackers (灰色, 100 点)

分配に関する面白い問題! 問題へのリンク 問題概要 枚のせんべいを 人に配る。 「最も多くのせんべいをもらった人」と「最も少ないせんべいをもらった人」の、もらったせんべいの個数の差を求めよ。 解法 もし、 が で割り切れるならば、全員に公平に分配で…

AtCoder ABC 104 A - Rated for Me (灰色, 100 点)

現代では古い設定となった問題。 問題へのリンク 問題概要 整数値 が与えられる。 が 1200 未満の場合は、"ABC" そうでなく が 2800 未満の場合は、"ARC" そうでない場合は、"AGC" と出力せよ。 解法 問題文で言われた通りに if-else 文で実装すれば OK。 #i…

AtCoder ABC 103 A - Task Scheduling Problem (灰色, 100 点)

この問題は意味を理解するのが大変だと思う! 問題へのリンク 問題概要 3 つの整数 が与えられる。これらを適切に並び替えたときの 1 番目と 2 番目の差 2 番目と 3 番目の差 の和として、考えられる最小値を求めよ。 解法 実際に幾つかのケースで手を動かし…

AtCoder ABC 102 A - Multiple of 2 and N (灰色, 100 点)

整数問題! 問題へのリンク 問題概要 整数 が与えられる。 と の最小公倍数を求めよ。 解法 一般に最小公倍数を求める方法としてはユークリッドの互助法が知られている。しかし、今回は次のように簡単に考えられる。 が 2 の倍数のとき:最小公倍数は が 2 …

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

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

AtCoder ABC 331 A - Tomorrow (灰色, 100 点)

2 回繰り上がる場合 (年末の日) に注意! 問題へのリンク 問題概要 ある暦では、1 年は 月あり、1 月は 日だけある (固定値)。 年 月 日の翌日を答えよ。 解法 年末のパターン、つまり かつ というパターンを見逃さないようにしよう! 年末のときは:答えは …

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 334 A - Christmas Present (灰色, 100 点)

近年ここまで簡単な問題は珍しい! 2016 年でも通用する A 問題! 問題へのリンク 問題概要 2 個の整数 が与えられる。 のとき:"Bat" のとき:"Glove" と出力せよ。 解法 if 文で、どちらの方が大きいかを判定すれば OK。 #include <bits/stdc++.h> using namespace std; i</bits/stdc++.h>…

AtCoder ABC 335 A - 202<s>3</s> (灰色, 100 点)

ここのところ、結構易しめの A 問題が続いているね! 問題へのリンク 問題概要 "hello2023" のように、"2023" で終わる文字列 が与えられる。 末尾の文字を '4' に変更して出力せよ。 解法 C++ では、文字列 の末尾の文字は S.back() でアクセスできる。 #in…

AtCoder ABC 099 A - ABD (灰色, 100 点)

以前に "ABC398" などと出力する問題があったが、その強化版の問題 問題へのリンク 問題概要 解法 が 以上かどうかで場合分けすればよい。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; if (N >= 1000) cout << "ABD" << endl; else cout <</bits/stdc++.h>…

AtCoder ABC 097 A - Colorful Transceivers (灰色, 100 点)

ちょっと整理するのが大変な問題。 問題へのリンク 問題概要 一直線上の座標 の点に、それぞれ A さん、B さん、C さんがいる。 2 人は、距離が 以内にいるとき、直接的に通信ができる。 A さんと C さんが、直接的に、あるいは間接的に、通信ができるかどう…

AtCoder ABC 098 A - Add Sub Mul (灰色, 100 点)

関数 max() の使い方に慣れていれば解ける! 問題へのリンク 問題概要 2 個の整数 が与えられる。 の最大値を答えよ。 解法 関数 max() を使えばよい。C++ では、3 個以上の最大値を答えるときは、次のコードのように {} で囲うようにしよう。 #include <bits/stdc++.h> usi</bits/stdc++.h>…

AtCoder ABC 096 A - Day of Takahashi (灰色, 100 点)

一瞬、各月の日数を考えないといけない気がして面倒だ......となった。でもその必要はなかった。 問題へのリンク 問題概要 2018 年 1 月 1 日から、2018 年 月 日までに、「月と日が等しい日」が何日あるかを数えてください。 解法 この手の問題では手を動か…

AtCoder ABC 095 A - Something on It (灰色, 100 点)

ラーメントッピング問題 問題へのリンク 問題概要 ラーメンを注文した。700 円である。 トッピングは 3 種類ある。それらのトッピングを注文したかどうかは 3 文字の文字列 で表される ("oxo" などのように)。 トッピングは 1 種類につき 100 円加算される。…

AtCoder ABC 094 A - Cats and Dogs (灰色, 100 点)

ほどよい算数の問題! 問題へのリンク 問題概要 猫と犬が合わせて 匹いて、そのうちの 匹は猫であることがわかっている。残りの 匹は猫か犬かわからない。 この中に猫がちょうど 匹いるようなことはありうるかどうかを判定せよ。 解法 不等式を立てる技能が…

AtCoder ABC 093 A - abc of ABC (灰色, 100 点)

3 文字の問題 問題へのリンク 問題概要 文字がすべて 'a', 'b', 'c' のいずれかである 3 文字の文字列 が与えられる。 を並び替えることで "abc" にできるかどうかを判定せよ。 解法 おそらく想定解法は、 が "abc", "acb", "bac", "bca", "cab", "cba" のい…

AtCoder ABC 092 A - Traveling Budget (灰色, 100 点)

いい感じの問題! 問題へのリンク 問題概要 電車とバスを乗り継いで目的地へ行く。 電車は、通常切符で 円、乗り放題切符で 円かかる バスは、通常切符で 円、乗り放題切符で 円かかる 最も安く行く方法で何円かかるか。 解法 答えは min(A, B) + min(C, D) …

AtCoder ABC 091 A - Two Coins (灰色, 100 点)

硬貨の問題! 問題へのリンク 問題概要 あなたは 円硬貨を 1 枚と、 円硬貨を 1 枚を持っている。 円の品物を購入できるかを判定せよ (お釣りは出ても良い)。 解法 所持金は 円であるから、 がそれ以下であれば OK。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 090 A - Diagonal String (灰色, 100 点)

文字列の扱いに慣れよう! 問題へのリンク 問題概要 の形に並べられた文字盤が与えられる。この文字盤の対角線上の文字を並べて得られる 3 文字の文字列を答えよ。 解法 入力を 3 つの文字列としてうけとり、それぞれの 0 文字目、1 文字目、2 文字目を答え…

AtCoder ABC 089 A - Grouping 2 (灰色, 100 点)

3 人一組になる問題 問題へのリンク 問題概要 人がいる。 人が 1 グループになることができる。作れるグループの個数は最大何個か? 解法 を で割った商が答えとなる。その余りの人数だけ余ることになる。 #include <bits/stdc++.h> using namespace std; int main() { int </bits/stdc++.h>…

AtCoder ABC 088 A - Infinite Coins (灰色, 100 点)

少し気づきにくいかもしれない。 問題へのリンク 問題概要 あなたは、 円硬貨を 枚と、 円硬貨を無限枚持っている。 これらで 円をちょうど支払うことができるかどうかを判定せよ。 解法 一瞬戸惑う問題だと思う。現実の支払いの場面を思い浮かべてみるとわ…

AtCoder ABC 087 A - Buying Sweets (灰色, 100 点)

これは簡単! 問題へのリンク 問題概要 円持っている状態から、 円の品物を買い、そのあと 円の品物をできるだけ買いました。 手元に残っている金額は? 解法 まず 円の品物を買ったあと、手元には 円残っている。 そのあと、 円の品物をできるだけ買ったと…

AtCoder ABC 086 A - Product (灰色, 100 点)

ABS に採用した問題! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が偶数か奇数かを判定せよ。 解法 一般に、整数 N が偶数かどうかを判定する方法は、if (N % 2 == 0) とすればよい。これを応用して解ける。 #include <bits/stdc++.h> using namespace std; i</bits/stdc++.h>…