結果

問題 No.466 ジオラマ
ユーザー GrenacheGrenache
提出日時 2016-12-16 20:50:12
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 2,362 bytes
コンパイル時間 4,468 ms
コンパイル使用メモリ 82,440 KB
実行使用メモリ 54,232 KB
最終ジャッジ日時 2024-11-30 10:41:56
合計ジャッジ時間 25,786 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 82 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.*;
import java.util.*;


public class Main_yukicoder466 {

	private static Scanner sc;
	private static Printer pr;

	private static void solve() {
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int d = sc.nextInt();

		if (c == 0) {
			int min = a - 1 + b - 1;

			if (d < min) {
				pr.println(-1);
				return;
			}

			int n = a + b;
			pr.printf("%d %d\n", n, min);
			for (int v = 2; v < 2 + a - 1; v++) {
				pr.printf("%d %d\n", 0, v);
			}
			for (int v = a + 1; v < n; v++) {
				pr.printf("%d %d\n", 1, v);
			}
		} else if (a == c && c == b) {
			int min = a - 1 + 1;

			if (d < min) {
				pr.println(-1);
				return;
			}

			int n = a;
			pr.printf("%d %d\n", n, min);
			pr.printf("%d %d\n", 0, 1);
			pr.printf("%d %d\n", 1, 0);
			for (int v = 2; v < 2 + a - 2; v++) {
				pr.printf("%d %d\n", 0, v);
			}
		} else if (a == c && c != b) {
			int min = a - 1 + 1 + b - c - 1;

			if (d < min) {
				pr.println(-1);
				return;
			}

			int n = b;
			pr.printf("%d %d\n", n, min);
			pr.printf("%d %d\n", 1, 0);
			for (int v = 2; v < 2 + a - 1; v++) {
				pr.printf("%d %d\n", 0, v);
			}
			for (int v = a + 1; v < n; v++) {
				pr.printf("%d %d\n", 1, v);
			}
		} else if (a != c && c == b) {
			int min = b - 1 + 1 + a - c - 1;

			if (d < min) {
				pr.println(-1);
				return;
			}

			int n = a;
			pr.printf("%d %d\n", n, min);
			pr.printf("%d %d\n", 0, 1);
			for (int v = 2; v < 2 + b - 1; v++) {
				pr.printf("%d %d\n", 1, v);
			}
			for (int v = b + 1; v < n; v++) {
				pr.printf("%d %d\n", 0, v);
			}
		} else {
			int min = a + b - c - 1;

			if (d < min) {
				pr.println(-1);
				return;
			}

			int n = a + b - c;
			pr.printf("%d %d\n", n, min);
			for (int v = 2; v < 2 + a - c - 1; v++) {
				pr.printf("%d %d\n", 0, v);
			}
			for (int v = a - c + 1; v < n - c; v++) {
				pr.printf("%d %d\n", 1, v);
			}
			pr.printf("%d %d\n", 0, n - c);
			pr.printf("%d %d\n", 1, n - c);
			for (int v = n - c + 1; v < n; v++) {
				pr.printf("%d %d\n", n - c, v);
			}
		}
	}

	// ---------------------------------------------------
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		pr = new Printer(System.out);

		solve();

		pr.close();
		sc.close();
	}

	private static class Printer extends PrintWriter {
		Printer(PrintStream out) {
			super(out);
		}
	}
}
0