今日はABC開催日だったので参加結果を振り返る
今日はABC3完(1ペナ)
- い つ も の
A
微妙に実装手間取った。
ソースコード
main.py
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
N, K = rLI()
A = rLI()
B = A[-K:]+A[:N-K]
print(*B)
if __name__ == '__main__':
main()
B
言われている操作を毎回行って、
条件のチェックにはCounterを使う
ソースコード
main.py
import sys
from itertools import count
from collections import Counter
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
N = rI()
A = rLI()
B = A[:]
for ans in count(start=1):
B = list(reversed(sorted(B)))
B[0] -= 1
B[1] -= 1
if sum(v for k,v in Counter(B).items() if k > 0) <= 1:
print(ans)
break
if __name__ == '__main__':
main()
C
3回やれば5減るから
そこまではざっくり減らして
細かい微調整をする
- 最初にも微調整しようとしたらペナった😢
ソースコード
main.py
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
N = rI()
H = rLI()
T = 0
for h in H:
k = h//5
T += 3*k
h -= 5*k
while h > 0:
T += 1
h -= 3 if T % 3 == 0 else 1
print(T)
if __name__ == '__main__':
main()
D
BFSとかDFSとか色々実装しようとしたけど
やっぱり、グラフの問題はできませんorz
E
Dがグラフだったから飛ばして見ようとしたけど
極端に正解数少なかったからちょっと諦めた
F
ゲーム理論はグラフよりきつい
G
クエリと聞いてセグ木、最大値と聞いてDPと反射的に構えて
じゃあセグ木にDP乗せるの!?とか思ってしまった。
まとめ
Cまで解けたのはいいけど
Dがグラフ問題、Eがなんか正解数少ない
そしてそもそもFGは地力不足な話
いい加減グラフと向きあう必要があるのかもしれない…
- そもそも特定の問題を捨てるなって話←