TonamiLog

ゆるキャン△とスノーボードとオタク

日経コンやった

ハロートナミです。進捗ダメです。

 

日経コンやりました。

nikkei2019-qual.contest.atcoder.jp

https://twitter.com/chokudai/status/1089556967121596418

日経コン。

 

競プロってどんなもんじゃいという事で事前に過去問を少し触っていた

f:id:Thiroyuki:20190128213450p:plain

https://kenkoooo.com/atcoder/?user=tonami&kind=user

 

 

んで本番の結果は3完で、結構素直にCまでは解けました。

その後DとEを読んでグラフ理論に脳みそをやられ、時間切れまでウダウダ過ごしたのですが、全く戦えないよりはFに挑戦すればよかったなあとか、そういう感じです。

 

f:id:Thiroyuki:20190128205601p:plain

スクショが下手。896/2489でした。開始15分後ぐらいにはじめた割には好成績な気がする。

 

f:id:Thiroyuki:20190128205804p:plain

奇跡的に誤答無し。やったね

 

f:id:Thiroyuki:20190128205903p:plain

そんで初めてコンテスト出たということで付いたレート等がこちら。

誤答無しが効いてるのか異様にパフォーマンスが高い。この調子でいくと水色になるらしいので年内には達成したいですね。もし達成出来たら青を目指すでしょう。よかったね

 

一応自分の解答でも載せとくかということでCです。

N = int(input())
ABlist = []

for n in range(N):
    a, b = input().split()
    a = int(a)
    b = int(b)
    winP = a + b
    ABlist.append((a, b, winP))

sortedList = sorted(ABlist, key=lambda x: x[2], reverse=True)

# 勝ち点の強いやつから取っていく?
Acount = 0
Bcount = 0

for i,x in enumerate(sortedList):
    if i % 2 == 0:
        Acount = Acount + x[0]
    elif i % 2 == 1:
        Bcount = Bcount + x[1]

print(Acount - Bcount)

 AとBはもういいよね?Bは文字列を配列っぽく扱ってfor i in range(N)でstr[i]を比較してけばいいじゃん神!とか思ってたらsetとかいうの使ってる神がいっぱいいた。神は偏在する。

んでCですけど、これボドゲとかの勝ち点計算でよくあるシチュエーションなのでスッと解法が降りてきて良かったです。

ソートの記述を他のから流用するためにwinPとかいう謎の変数を生やして""強い料理""順にして良いやつから食っていくと答えになる。はい

 

んでこれ解いた後40分ぐらいはD眺めて唸ってたんですけど、あれ未だに1意になるのがよく分からないので誰か解説して下さい。おわり

https://twitter.com/chokudai/status/1089556967121596418https://twitter.com/chokudai/status/1089556967121596418https://twitter.com/chokudai/status/1089556967121596418https://twitter.com/chokudai/status/1089556967121596418https://twitter.com/chokudai/status/1089556967121596418https://twitter.com/chokudai/status/1089556967121596418

https://twitter.com/chokudai/status/10895569671215964

18