結果
| 問題 | No.2797 Square Tile |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-06-28 23:01:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 130 ms / 2,000 ms |
| コード長 | 1,726 bytes |
| コンパイル時間 | 205 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 80,128 KB |
| 最終ジャッジ日時 | 2024-06-28 23:01:12 |
| 合計ジャッジ時間 | 3,945 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
import sys, random
input = lambda : sys.stdin.readline().rstrip()
write = lambda x: sys.stdout.write(x+"\n"); writef = lambda x: print("{:.12f}".format(x))
debug = lambda x: sys.stderr.write(x+"\n")
YES="Yes"; NO="No"; pans = lambda v: print(YES if v else NO); INF=10**18
LI = lambda v=0: list(map(lambda i: int(i)-v, input().split())); II=lambda : int(input()); SI=lambda : [ord(c)-ord("a") for c in input()]
def debug(_l_):
for s in _l_.split():
print(f"{s}={eval(s)}", end=" ")
print()
def dlist(*l, fill=0):
if len(l)==1:
return [fill]*l[0]
ll = l[1:]
return [dlist(*ll, fill=fill) for _ in range(l[0])]
def sub(a,b):
assert gcd(a,b)==1
VV = a*a + b*b
f = 0
if a>b:
a,b = b,a
f = 1
assert a<=b
xy0 = []
xy1 = []
x = y = 0
for i in range(a*a + b*b):
xy0.append((x,y))
x += b
y += a
x = b
y = 0
for i in range(a*a+b*b):
xy1.append((x,y))
x += b
y += a
if not f:
xy0,xy1 = xy1,xy0
return xy0, xy1
a,b = list(map(int, input().split()))
from math import gcd
if a==b:
VV = a*a + b*b
xy = [(i,j) for i in range(0, a*a*2, a) for j in range(0, a*a*2, a)]
for x,y in xy:
print(x%VV,y%VV)
else:
VV = a*a+b*b
g = gcd(a,b)
xy0, xy1 = sub(a//g, b//g)
res0 = []
res1 = []
tmp = (a*a+b*b)//g
for vx in range(g):
for vy in range(g):
for x,y in xy0:
res0.append((x*g+tmp*vx, y*g+tmp*vy))
for x,y in xy1:
res1.append((x*g+tmp*vx, y*g+tmp*vy))
xy0 = res0
xy1 = res1
for x,y in xy0:
print(x%VV,y%VV)
for x,y in xy1:
print(x%VV,y%VV)