まだ不慣れだけど参加してみた.
時系列的にこんな感じ.
0:04:00 A pretest 通過
0:17:43 B pretest 通過
1:08:40 D pretest 通過
1:44:24 C Time limit exceeded on test 12
1:54:55 D Hacked
E めんど
2:00:00 終わり><
んでもって結果は
A Wrong answer on test 8
B Accepted
C だめ
D hackされるとかないわー
E そんな問題あったの?
ふぅ
コンテスト終わってから投げたコードでA, CはAcceptされた.
まずAについて
数列が与えられて二つとってきてその差の絶対値がd以下の組み合わせが何組あるか.
超簡単じゃんと言って4:00に投げたコードがこれ.
import math n, d = map(int, raw_input().split()) h = map(int, raw_input().split()) ans = 0 for i in xrange(0, len(h)): for j in xrange(0, len(h)): if not i is j and abs(h[i] - h[j]) <= d: ans += 1 print ans
pretestに通ったからまったく気が付かなかった.
isと==は別物なんだね...
コンテスト終わってからnot i is jのところをi != jってしたら普通に通りました, はい.
ちなみにJで書いたら
10 *1-$@]) 10 20 50 60 65
って感じ.
Bについて.
Bに着たのが早かったので, 問題の間違いに動揺するも, ちゃんとalertで間違いが示されたので一安心.
三進数の文字置換をしなさいって問題.
0が.で1が-.で2が--ってなってる.
投げたコードはこれ.
import re print re.sub(r'-1', '20', re.sub(r'\.', '0', re.sub(r'--', '2', re.sub(r'-\.', '1', raw_input()))))
これで通るとは思いませんでした, はい.
Cについて.
蚤が飛び回る問題.
コンテスト後に投げてacceptされたコードがこれ.
n, m, s = map(int, raw_input().split()) print ((n - 1) % s + 1) * ((n - 1) / s + 1) * ((m - 1) % s + 1) * ((m - 1) / s + 1)
これでいいのかよ...おい...
Dについて.
Hackされるとかないわー
しかもtime limitのhackだったし.
1:08:40に投げたコードはこれ.
import re n, m, k = map(int, raw_input().split()) arr = [] ans = [] class END(Exception): pass for i in xrange(n): arr.append(raw_input()) for x in xrange(1, min(n / 2, m / 2) + 1): for i in xrange(x, n - x): for j in xrange(x, m - x): try: if arr[i][j] is '*' and arr[i][j + x] is '*' and arr[i + x][j] is '*' and arr[i][j - x] is '*' and arr[i - x][j] is '*': ans.append([(i + 1, j + 1), (i - x + 1, j + 1), (i + x + 1, j + 1), (i + 1, j - x + 1), (i + 1, j + x + 1)]) except: pass try: for a in ans[k - 1]: print '%d %d' % a except: print -1
あーあ...
ダメだこりゃ...
後で見たら何か無駄な事書いてるしwww
なんでreをimportしてるんでしょうね(遠目
まだ訂正できてない状態...
Eについて.
壁と鏡と二人がいて, お互いが見えるかという問題(たぶん
壁の計算は出来てるけど鏡の所がまだ書けてない.
というか面倒くさい.
うーん...
*1:+/@,@([>:|@-/~@]