import sys
def flush():
sys.stdout.flush()
def ask(grid):
print("?")
for row in grid:
print(row)
flush()
return int(input())
def generate_grid(n, horizontal_rows=[], vertical_cols=[]):
grid = [['0'] * n for _ in range(n)]
for r in horizontal_rows:
for c in range(n):
grid[r][c] = '1'
for c in vertical_cols:
for r in range(n):
grid[r][c] = '1'
return [''.join(row) for row in grid]
def main():
n = int(input())
is_horizontal = [False] * n
# First row test: Turn on row 0
grid = generate_grid(n, horizontal_rows=[0])
row_lit = ask(grid)
# First column test: Turn on col 0
grid = generate_grid(n, vertical_cols=[0])
col_lit = ask(grid)
# Determine type of lamp 0
if row_lit >= col_lit:
is_horizontal[0] = True
for i in range(1, n):
grid = generate_grid(n, horizontal_rows=[i])
lit = ask(grid)
is_horizontal[i] = (lit == n)
else:
is_horizontal[0] = False
for i in range(1, n):
grid = generate_grid(n, vertical_cols=[i])
lit = ask(grid)
is_horizontal[i] = (lit != n)
# Final answer
print("!")
for i in range(n):
if is_horizontal[i]:
print("1" * n)
else:
row = ['0'] * n
row[i] = '1'
print("".join(row))
flush()
if __name__ == "__main__":
main()
컴파일 시 표준 출력 (stdout) 메시지
Compiling 'Main.py'...
=======
adding: __main__.pyc (deflated 46%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |