はじめに
ノリで書いたツイートが謎に伸びました。
こんにちは chokudaiだよ
— tax_free (@taxfree_python) April 3, 2020
ABCをはじめるよ
*コーダーのお前らならば
余裕で解けるよね
ハイA、ハイB、ハイC、D、C
ひさしぶりにABCで解けた!と思いました。A~Cの三完です!
A問題
考えたこと
AとBを入れ替える→AとCを入れ替える、ということは最終的に[C,A,B]の並びになるということなのでそれを出力する。
x, y, z = map(int,input().split())
print(z,x,y)
B問題
考えたこと
forで商品を一つずつ取り出して、取り出した商品の票数が条件(全体の$\frac{1}{4M}$)を満していればansに足して、ans>=Mで分けます。
n, m = map(int,input().split())
a = list(map(int,input().split()))
s = sum(a) #sumでaの合計を計算
ans = 0
for i in a:
if i >= s*1/(4*m):
ans += 1
if ans >= m:
print('Yes')
else:
print('No')
C問題
考えたこと
最初は素直にそれぞれのminを計算しようかと思いましたが、それではTLEするので楽に計算する方法を考えなければいけません。差が自然数の範囲で最小になるまで引き算し続けるのなら、割り算してその余りを求めればいいじゃない方針で解きました。
コンテスト中は不安だったのでmin(n,n%k,abs(n%k-k))で提出しました。不安だったのは$n<k$のときを考えてなかったからです。今考えると、$n<k$のときでもn%k=nなのでmin(n%k,abs(n%k-k))で通る。
n, k = map(int,input().split())
a = n % k
print(min(a,abs(a-k)))
D問題
問題
考えたこと
桁DP?やなんとか優先探索で解くのかなと思って調べてみましたが、解けませんでした。諦めてEを考えてました。
E問題
問題
考えたこと
Sのo、xをboolに置き換えて、出勤できる日だけをlistにしました。しかし、[1,6,10,11]のようにCを満さないようなlistもできるのでどうやって処理するかを考えているとコンテストが終了しました。グラフとかDPとかでできる?
まとめ
健闘できたABCでした。次のコンテストで脱灰できるように精進します。