こんにちは, Shinoryoです.
今回はAtCoder Beginner Contest 185を, Pythonで解いてみた結果を書き連ねていこうと思います.
AtCoder Beginner Contest 185 - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
A - ABC Preparation
単純に,
print(min([int(x) for x in input().split()])) |
B - Smartphone Addiction
問題文に従って, カフェに入る前および帰宅したときのバッテリー残量を調べ, 0以下かどうか判定します. 最大容量以上にバッテリーは充電されないことに注意して, 充電の処理をしてください.
N, M, T = [int(x) for x in input().split()] | |
# 最大容量の記録用 | |
Nmax = N | |
# カフェを出た時刻の記録用 | |
Bbefore = 0 | |
for i in range(M): | |
A, B = [int(x) for x in input().split()] | |
# カフェに入る前に, 時間(A - Bbefore)だけ外出している | |
N -= A - Bbefore | |
# バッテリー判定 | |
if N <= 0: | |
print("No") | |
exit() | |
# カフェには時間(B-A)だけ滞在している | |
# 最大容量以上にバッテリーは充電されないことに注意 | |
N = min(N + B - A, Nmax) | |
# カフェを出た時刻を記録して, 次の計算に用いる | |
Bbefore = B | |
# カフェを出てから帰宅するまで, 時間(T - Bbefore)だけ外出している | |
N -= T - Bbefore | |
# バッテリー判定(帰宅時の判定) | |
if N <= 0: | |
print("No") | |
else: | |
print("Yes") |
C - Duodecim Ferra
求めるものはすなわち, 切る場所の候補
import math | |
# 入力 | |
L = int(input()) | |
# 求めるのは(L-1)C(11) | |
# (L-1)個の分割候補から, 11個を選ぶ組み合わせ | |
print(math.factorial(L - 1) // (math.factorial(L - 12) * math.factorial(11))) |
D - Stamp
マス目の中で白色のマスが連続しているところの白色のマスの個数を, 左から
最終的に求めるのは,
になります. 白色のマスが存在しない場合の処理を別途行う必要があることに注意してください.
# 入力, 後のためにAはソートしておく | |
N, M = [int(x) for x in input().split()] | |
A = sorted([int(x) for x in input().split()]) | |
# whitelist:白色のマスが何個連続して並んでいるかのリスト | |
# 青白白青白青白白白 なら [2,1,3]が入る | |
whitelist = list() | |
# tempはwhitelistの構築に使用する一時変数 | |
temp = 1 | |
# Aの各要素に対し, そのマスより左側に連続して並んでいる白色のマスの個数を調べる | |
for i in A: | |
if i - temp > 0: | |
whitelist.append(i - temp) | |
temp = i + 1 | |
# 端のマスの処理 | |
if N + 1 - temp > 0: | |
whitelist.append(N + 1 - temp) | |
# もし白色のマスが存在しない場合の処理 | |
if whitelist == []: | |
print(0) | |
# そうでなければ…… | |
else: | |
# kはwhitelistの要素のうち最小のものに等しい | |
k = min(whitelist) | |
# ハンコを押す必要のある回数を調べる | |
ans = 0 | |
for j in whitelist: | |
ans += j // k | |
if j % k != 0: | |
ans += 1 | |
print(ans) |
E以降
E以降は私の能力不足故に省略いたします.
参考にしたサイト等
- 「解説 - AtCoder Beginner Contest 185」
Editorial - AtCoder Beginner Contest 185
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
- nkmk様の「Python3の整数int型に最大値はない(上限なし)」
Python3の整数int型に最大値はない(上限なし) | note.nkmk.me
Python2の整数型にはintとlongの2つの型があったが, Python3にはintしかない. Python3のintはPython2のlongに相当し, 最大値の上限はなく, メモリの許す限り大きな値を扱うことが可能. ここでは以下の内容について説明する. Python2の整数int型と長整数long型 Python3の整数int型浮動小数点数floatとの関係 浮動小数点数flo...
0 件のコメント:
コメントを投稿 (Please feel free to ask me about your questions! You can use Japanese or English in the comments.)