結果

問題 No.466 ジオラマ
ユーザー mitsuomitsuo
提出日時 2017-06-28 15:05:47
言語 Python2
(2.7.18)
結果
AC  
実行時間 20 ms / 2,000 ms
コード長 2,347 bytes
コンパイル時間 143 ms
コンパイル使用メモリ 7,040 KB
実行使用メモリ 7,296 KB
最終ジャッジ日時 2024-10-04 14:48:32
合計ジャッジ時間 3,596 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 83
権限があれば一括ダウンロードができます

ソースコード

diff #

# -*- coding: utf-8 -*-




def solve(input):
    A = int(input.split()[0]) # 村0から水を流すと、村0を含めて A 個の村に水が届いた。
    B = int(input.split()[1]) # 村1から水を流すと、村1を含めて B 個の村に水が届いた。
    C = int(input.split()[2]) # 村0からも村1からも水が届いた村は C 個であった。(ただし、C≤min(A,B)C≤min(A,B) をみたす。)
    D = int(input.split()[3]) # 水路は D 本以下であった。
    N = 0
    M = 0
    vIndex = 2
    ans = []

    if A == B == C and C < 2:
        D = -1
        pass
    elif A == B == C:
        C -= 2
        ans.append("0 1")
        ans.append("1 0")

        for r in xrange(C):
            ans.append("0 " + str(vIndex))
            vIndex += 1
        pass
    elif A == C:
        A -= 1 # 自分
        B -= 1  # 自分
        ans.append("1 0")
        B -= 1
        C -= 1
        for r in xrange(C):
            ans.append("0 " + str(vIndex))
            vIndex += 1
            B -= 1
            A -= 1

        for r in xrange(B):
            ans.append("1 " + str(vIndex))
            vIndex += 1

        pass
    elif B == C:
        A -= 1 # 自分
        B -= 1  # 自分
        ans.append("0 1")
        A -= 1
        C -= 1

        for r in xrange(C):
            ans.append("1 " + str(vIndex))
            vIndex += 1
            B -= 1
            A -= 1

        for r in xrange(A):
            ans.append("0 " + str(vIndex))
            vIndex += 1

        pass
    else:
        A -= 1 # 自分
        B -= 1  # 自分
        for r in xrange(C):
            if r == 0:
                ans.append("0 2")
                ans.append("1 2")
                vIndex += 1
                A -= 1
                B -= 1
                continue

            ans.append("2 " + str(vIndex))
            A -= 1
            B -= 1
            vIndex += 1

        for r in xrange(A):
            ans.append("0 " + str(vIndex))
            vIndex += 1

        for r in xrange(B):
            ans.append("1 " + str(vIndex))
            vIndex += 1
        pass
    ans.sort()

    if len(ans) <= D:
        ans.insert(0, str(vIndex) + " " + str(len(ans)))
    else:
        ans = ["-1"]

    return ans

if __name__ == "__main__":
    ex = solve(raw_input())
    for l in ex:
        print l


0