Codefestival 決勝 A-E 勝手にやった
code-festival-2015-final-open.contest.atcoder.jp
A コード川柳
A: コード川柳 - CODE FESTIVAL 2015 決勝(オープンコンテスト) | AtCoder
文字列の長さが575かどうか調べる。
inputs = raw_input().split() lengths = map(len, inputs) if lengths == [5,7,5]: print 'valid' else: print 'invalid'
B ダイスゲーム
B: ダイスゲーム - CODE FESTIVAL 2015 決勝(オープンコンテスト) | AtCoder
N個のダイスを投げた目の和として最も確率の高い、最小の数
N = input() if N == 1: print 1 else: print int(3.5*N)
「和の期待値は期待値の和」とかあったと思う
C 寿司タワー
C: 寿司タワー - CODE FESTIVAL 2015 決勝(オープンコンテスト) | AtCoder
できるだけ寿司を分解せずに、求める寿司タワーを作る(リンク先参照
N = input() tower = list(raw_input()) for i in xrange(2*N-1): if tower[i] != '2' and tower[i] != tower[i+1]: tower[i] = tower[i+1] = '2' #そのままつかえるものはそのまま使う(→2に変えてみた) answer = N - tower.count('2') / 2 #そのままつかえないもの÷2 print answer
- 作者: 佐藤俊
- 出版社/メーカー: 小学館
- 発売日: 2003/04
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (9件) を見る
D 足ゲームII
D: 足ゲームII - CODE FESTIVAL 2015 決勝(オープンコンテスト) | AtCoder
(N−1)個の区間を埋めるための最小値(リンク先参照
いきなり難しくない?解説も見たけどピンとこず
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 決勝 : D - 足ゲームII - kmjp's blog
こういうことかなと思ったけど
# TLE N = input() buttons = [map(int, raw_input().split()) for loop in xrange(N)] times = list(set([item for sublist in buttons for item in sublist])) times.sort() #境目となる時間リスト needs = [] for time in times: cnt = 0 for button in buttons: if button[0] <= time < button[1]: cnt += 1 needs.append(cnt) #必要な人数リスト peaks = [i for i in xrange(N) if needs[i] == max(needs)] #そのピーク sta, end = peaks[0], peaks[-1]+1 sta, end = times[sta], times[end] for button in buttons: if button[0] <= sta and end <= button[1]: covered = True break else: covered = False # それをカバーする区間があれば True print max(needs) - (covered)
E ショートコーディング
E: ショートコーディング - CODE FESTIVAL 2015 決勝(オープンコンテスト) | AtCoder
! と - からなる言語のコードと等価な、最短のコード
入力が 0 と それ以外 で結果変わるんだろうだなと思いながら実験 (test)、有限っぽいので短い順に(長さ3まで)試して書いた
S = list(raw_input()) S = S[::-1] def test(S): a, b = 0, 256 for s in S: if s == '-': a = -a b = -b elif s == '!': a = 0 if a != 0 else 1 b = 0 if b != 0 else 1 return a, b def solve(S): if test(S) == (0, 256): return '' elif test(S) == (0, -256): return '-' elif test(S) == (1, 0): return '!' elif test(S) == (0, 1): return '!!' elif test(S) == (-1, 0): return '-!' elif test(S) == (0, -1): return '-!!' print solve(S)
まあACになってよかった