diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2011-04-18 15:46:33 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2011-04-18 15:46:33 +0300 |
| commit | b05e4d73f992aa8de779fa06fff968d4acdd7560 (patch) | |
| tree | 7e94c502b8cd0991c9536484b0ec9ceb5fe1bb6a /2010/1a/a.py | |
| parent | 13192e66e7b0f629444c785202a3d409aceb6373 (diff) | |
moved stuff in a
Diffstat (limited to '2010/1a/a.py')
| -rw-r--r-- | 2010/1a/a.py | 61 |
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) |
