Jayakrishna14

Falling footballs

Jun 14th, 2025
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.20 KB | None | 0 0
  1. T = int(input())
  2. for t in range(1, T + 1):
  3.  
  4.     print(f"Case {t}:")
  5.     n = int(input())
  6.     l = list(map(int, input().split()))
  7.     mapy = {}
  8.  
  9.     for pos in l:
  10.         mapy[pos] = 1 + (0 if pos not in mapy else mapy[pos])
  11.         i = pos
  12.         while (0 if i + 1 not in mapy else mapy[i + 1]) < mapy[i] - 1:
  13.             mapy[i + 1] = 1 + (0 if i + 1 not in mapy else mapy[i + 1])
  14.             mapy[i] -= 1
  15.             i += 1
  16.  
  17.         i = pos
  18.         while (0 if i - 1 not in mapy else mapy[i - 1]) < mapy[i] - 1:
  19.             mapy[i - 1] = 1 + (0 if i - 1 not in mapy else mapy[i - 1])
  20.             mapy[i] -= 1
  21.             i -= 1
  22.  
  23.     keys = list(mapy.keys())
  24.     rangee = (min(keys), max(keys))
  25.  
  26.     width = rangee[1] - rangee[0] + 1
  27.     vals = [0] * width
  28.  
  29.     for key in range(rangee[0], rangee[1] + 1):
  30.         vals[key - rangee[0]] = 0 if key not in mapy else mapy[key]
  31.  
  32.     height = max(vals)
  33.  
  34.     m = height
  35.     n = width
  36.  
  37.  
  38.     mat = [['.' for _ in range(n)] for _ in range(m)]
  39.     for i in range(m):
  40.         for j in range(n):
  41.             if vals[j] > 0:
  42.                 mat[i][j] = 'O'
  43.             vals[j] -= 1
  44.     for i in range(m - 1, -1, -1):
  45.         print(''.join(mat[i]))
  46.  
Tags: python
Advertisement
Add Comment
Please, Sign In to add comment