結果
問題 |
No.466 ジオラマ
|
ユーザー |
![]() |
提出日時 | 2020-04-30 16:11:11 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 59 ms / 2,000 ms |
コード長 | 2,217 bytes |
コンパイル時間 | 183 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 11,264 KB |
最終ジャッジ日時 | 2024-12-16 00:53:55 |
合計ジャッジ時間 | 6,118 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 83 |
ソースコード
from itertools import * from bisect import * from collections import * from heapq import * import sys sys.setrecursionlimit(10 ** 6) def II(): return int(sys.stdin.readline()) def MI(): return map(int, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def SI(): return sys.stdin.readline()[:-1] def LLI(rows_number): return [LI() for _ in range(rows_number)] def LLI1(rows_number): return [LI1() for _ in range(rows_number)] int1 = lambda x: int(x) - 1 def MI1(): return map(int1, sys.stdin.readline().split()) def LI1(): return list(map(int1, sys.stdin.readline().split())) p2D = lambda x: print(*x, sep="\n") dij = [(1, 0), (0, 1), (-1, 0), (0, -1)] def main(): def ng(): print(-1) exit() a,b,c,d=MI() # aを村0「だけ」から、水を受け取る村の数 # bを村1「だけ」から、水を受け取る村の数にする a-=c b-=c # 不可能なパターン if a+b+c<2:ng() # すべての村が0,1から受け取る if a==0 and b==0: if c>d:ng() print(a+b+c,c) print(0,1) print(1,0) for i in range(2,c): print(1,i) # 村1「だけ」から受け取る村の数がない elif b==0: if a+c-1>d:ng() print(a+b+c,a+c-1) print(0,1) for i in range(2,a+1): print(0,i) for i in range(a+1,a+c): print(1,i) # 村0「だけ」から受け取る村の数がない elif a==0: if b+c-1>d:ng() print(a+b+c,b+c-1) print(1,0) for i in range(2,b+1): print(1,i) for i in range(b+1,b+c): print(0,i) # 両方から受け取る村がない elif c==0: if a+b-2>d:ng() print(a+b+c,a+b-2) for i in range(2,a+1): print(0,i) for i in range(a+1,a+b): print(1,i) # 全パターンある else: if a+b+c-1>d:ng() print(a+b+c,a+b+c-1) print(0,2) print(1,2) for i in range(3,2+a): print(0,i) for i in range(2+a,1+a+b): print(1,i) for i in range(1+a+b,a+b+c): print(2,i) main()