summaryrefslogtreecommitdiff
path: root/2010/1a/a.py
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2011-04-18 15:46:33 +0300
committerYuval Adam <yuv.adm@gmail.com>2011-04-18 15:46:33 +0300
commitb05e4d73f992aa8de779fa06fff968d4acdd7560 (patch)
tree7e94c502b8cd0991c9536484b0ec9ceb5fe1bb6a /2010/1a/a.py
parent13192e66e7b0f629444c785202a3d409aceb6373 (diff)
moved stuff in a
Diffstat (limited to '2010/1a/a.py')
-rw-r--r--2010/1a/a.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/2010/1a/a.py b/2010/1a/a.py
deleted file mode 100644
index e3040a1..0000000
--- a/2010/1a/a.py
+++ /dev/null
@@ -1,61 +0,0 @@
-f = open('2.in', 'r')
-o = open('2.out', 'w')
-
-def cols(m):
- n = len(m)
- return [''.join([m[j][i] for j in range(n)]) for i in range(n)]
-
-def diag(m):
- n = len(m)
- d = [zip(range(i+1) ,range(i+1)[::-1]) for i in range(n)]
- d += [zip(range(i+1, n) ,range(i+1, n)[::-1]) for i in range(n-1)]
- return [''.join([m[i][j] for (i,j) in diag]) for diag in d]
-
-def diag_inv(m):
- n = len(m)
- d = [zip(range(i+1),range(i+1)[::-1]) for i in range(n)]
- d += [zip(range(i+1, n) ,range(i+1, n)[::-1]) for i in range(n-1)]
- return [''.join([m[n-1-i][j] for (i,j) in diag]) for diag in d]
-
-def rotate(m):
- n = len(m)
- return [''.join([m[j][i] for j in range(n)[::-1]]) for i in range(n)]
-
-def droprow(r):
- return '.' * r.count('.') + r.replace('.','')
-
-def gravity(m):
- return map(droprow, m)
-
-def winrow(r, k):
- res = 0
- if r.find('B'*k) != -1:
- res |= 1
- if r.find('R'*k) != -1:
- res |= 2
- return res
-
-def win(m, k):
- R = ['Neither', 'Blue', 'Red', 'Both']
- win = 0
- for row in m:
- win |= winrow(row, k)
- for col in cols(m):
- win |= winrow(col, k)
- for dia in diag(m):
- win |= winrow(dia, k)
- for idia in diag_inv(m):
- win |= winrow(idia, k)
- return R[win]
-
-t = int(f.readline().strip())
-
-for i in range(t):
- (n, k) = map(int, f.readline().strip().split(' '))
-
- mat = [f.readline().strip() for j in range(n)]
- mat = rotate(gravity(mat))
-
- s = "Case #%d: %s\n" % (i+1, win(mat, k))
- print s
- o.write(s)