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

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

if文

AtCoder ABC 141 A - Weather Prediction (灰色, 100 点)

周期変化の問題 問題へのリンク 問題概要 高橋君の住む街では、天気が "Sunny", "Cloudy", "Rainy" をこの順に周期的に繰り返す。 ある日の天気を表す文字列 が与えられるので、その次の日の天気を表す文字列を出力せよ。 解法 if 文を用いて丁寧に実装しよ…

AtCoder ABC 138 A - Red or Not (灰色, 100 点)

if 文の練習問題! 問題へのリンク 問題概要 整数 と文字列 が与えられる。 が 3200 以上ならば を答えて、3200 未満ならば "red" と答えよ。 解法 if 文を用いて処理を分岐すれば OK #include <bits/stdc++.h> using namespace std; int main() { int a; string s; cin >> </bits/stdc++.h>…

AtCoder ABC 136 A - Transfer (灰色, 100 点)

if 文を使うか、関数 max() を使えば OK 問題へのリンク 問題概要 水を入れる容器が 2 つある。 容器 1 には水を ミリリットルまで入れることができ、水が ミリリットル入っている。 容器 2 には水が ミリリットル入っている。 容器 2 から容器 1 に入るだけ…

AtCoder ABC 133 A - T or T (灰色, 100 点)

久しぶりの易しい問題! 問題へのリンク 問題概要 電車を使うと 1 人あたり 円かかります。 タクシーを使うと 人で 円かかります。 人で移動する最小料金はいくらか。 解法 A * N B のうちの小さい方を答えれば OK。関数 min() が使える。 #include <bits/stdc++.h> using n</bits/stdc++.h>…

AtCoder ABC 132 A - Fifty-Fifty (灰色, 100 点)

これはだいぶ難しい問題ですね! 問題へのリンク 問題概要 4 文字の文字列 が与えられる。 がちょうど 2 種類の文字からなり、それらの文字がちょうど 2 個ずつあるかどうかを判定せよ。 解法 色んな解法があると思われる。ここでは、 をアルファベット順に…

AtCoder ABC 131 A - Security (灰色, 100 点)

隣接要素を見る問題。それは何気に結構難しいことだとも思う。 問題へのリンク 問題概要 4 文字の文字列が与えられます。 隣り合う文字が等しい箇所が存在するならば "Bad"、そうでなければ "Good" と答えてください。 解法 次のいずれかを満たせば "Bad" と…

AtCoder ABC 130 A - Rounding (灰色, 100 点)

とても易しい if 文の問題 問題へのリンク 問題概要 整数 が与えられる。 が 未満のときは 0、 以上のときは 10 を出力せよ。 解法 が 未満であることは X < A と表せる。if 文を用いて処理を分岐すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { i</bits/stdc++.h>…

AtCoder ABC 127 A - Ferris Wheel (灰色, 100 点)

if 文を上手に使おう! 問題へのリンク 問題概要 ある観覧車の利用料金は年齢に応じて次のとおりである。 13 歳以上は 円かかる。 6 歳以上 12 歳以下は 円の半額がかかる。( は偶数) 5 歳以下は無料 歳の高橋君が観覧車に乗るときの利用料金を求めよ。 解法…

AtCoder ABC 123 A - Five Antennas (灰色, 100 点)

ちょっと数学的な部分が難しい問題かもしれない。 問題へのリンク 問題概要 5 つのアンテナがこの順に一直線上に並んでいて、それぞれ座標値は () である。 2 つのアンテナは、距離が 以内であるとき、通信できる。 これらのアンテナの組であって、通信でき…

AtCoder ABC 122 A - Double Helix (灰色, 100 点)

文字の問題 問題へのリンク 問題概要 A, C, G, T のいずれかの文字が与えられる。 A と T、C と G がそれぞれ対になる。 与えられた文字に対して、対となる文字を出力せよ。 解法 if 文を使って処理しよう。 #include <bits/stdc++.h> using namespace std; int main() { ch</bits/stdc++.h>…

AtCoder ABC 120 A - Favorite Sound (灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 買いたいものがある。 円で 1 個買うことができる。 円持っている。 ただし、 個以上は要らない。何個買えるか。 解法 最後の「 個以上は要らない」がなければ、B / A が答えとな…

AtCoder ABC 119 A - Still TBD (灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

AtCoder ABC 118 A - B +/- A (灰色, 100 点)

倍数判定は演算子「%」を用いる! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が の約数ならば の値を出力し、そうでないならば の値を出力せよ。 解法 が の約数 (言い換えると、 が で割り切れる) であるかどうかは、 if (B % A == 0) という…

AtCoder ABC 115 A - Christmas Eve Eve Eve (灰色, 100 点)

落ち着いて処理しよう。 問題へのリンク 問題概要 D=25 なら Christmas D=24 なら Christmas Eve D=23 なら Christmas Eve Eve D=22 なら Christmas Eve Eve Eve と出力するプログラムを作ってください。 解法 if-else 文や、switch 文を用いて処理しよう。 …

AtCoder ABC 114 A - 753 (灰色, 100 点)

論理演算子が使えるかが問われる。 問題へのリンク 問題概要 整数 が、7 または 5 または 3 であるかを判定せよ。 解法 if 文を用いればよい。「または」を判定するためには、論理演算子「||」が使える。 #include <bits/stdc++.h> using namespace std; int main() { int X</bits/stdc++.h>…

AtCoder ABC 112 A - Programming Education (灰色, 100 点)

最初に入力される値に応じて処理を分岐する問題! 問題へのリンク 問題概要 まず整数 を受け取る のとき:"Hello World" と出力せよ のとき:追加で整数 を入力として受け取り、 の値を出力せよ 解法 の値によって、最終的に受け取る入力の個数が変わる問題…

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

パリティの問題。ここのところ、算数や数学の問題が続いている。 問題へのリンク 問題概要 1 以上 3 以下の整数 が与えられる。 が奇数 となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。 解法 一般に、かけ算をするとき 偶数が 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 102 A - Multiple of 2 and N (灰色, 100 点)

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

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

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

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

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

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 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 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 091 A - Two Coins (灰色, 100 点)

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

AtCoder ABC 088 A - Infinite Coins (灰色, 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>…