読者です 読者をやめる 読者になる 読者になる

codeforces#35

codeforces

多忙のため, 登録せず.

その内解いたら追記してきます.



Aについて

三つコップがあって, その内の一つにボールが入っている.

三回コップをスワップしたとき, ボールはどこに行ったでしょう?

というよくあるゲームの問題.

入出力はファイルであるということに多くの人が時間を取られた模様.

順番にスワップしていけばおk

f1 = file('input.txt', 'r')
n = int(f1.readline())
a = map(lambda x: map(int, x.split()), f1.readlines())
f1.close()
arr = range(4)
for p in a:
  arr[p[0]], arr[p[1]] = arr[p[1]], arr[p[0]]
file('output.txt', 'w').write(str(arr[n]))




Cについて.

N*Mの木があって, K箇所で同時多発的に火事が起こり, 燃え広がっていくとき, 最後まで燃え残るのはどの木か?

最初は, 燃えている木から順々に隣へ隣へっていうコード書いてたんだけど,

そんなのいらないじゃん...と思って

from itertools import product
def d(p, q):
  return abs(p[0] - q[0]) + abs(p[1] - q[1])
f1 = file('input.txt', 'r')
(N, M) = map(int, f1.readline().split())
K = int(f1.readline())
xy = map(lambda x: int(x) - 1, f1.readline().split())
f1.close()
arr = []
while xy:
  arr.append((xy.pop(0), xy.pop(0)))
ans = sorted([sorted([(d(i, j), i) for j in arr])[0] 
                for i in product(xrange(N), xrange(M))])[-1][-1]
file('output.txt', 'w').write('%d %d' % (ans[0] + 1, ans[1] + 1))

ただ, オーダーがヤバいから時間がかかってしょうがない

test 29でTime limit exceededしていますorz