Submission #24241836


Source Code Expand

import java.util.*;

public class Main {

	public static void main(String[] args) {

		// 入力
		Scanner sc = new Scanner(System.in);
		int n = Integer.parseInt(sc.next());
		long[] a = new long[n];
		long[] b = new long[n];
		for (int i = 0; i < n; i++) {
			a[i] = Long.parseLong(sc.next());
		}
		for (int i = 0; i < n; i++) {
			b[i] = Long.parseLong(sc.next());
		}

		// 矛盾ケース
		if (a[n - 1] != b[0]) {
			System.out.println(0);
			return;
		}

		// 左から歩く
		// c[i] = h → i番目の山のありえる高さは h 通り
		// c[i] = 0 → i番目の山のありえる高さは 1 通り
		long[] c = new long[n];
		c[0] = 0;
		for (int i = 1; i < n; i++) {
			c[i] = (a[i - 1] == a[i]) ? a[i] : 0;
		}

		// 右から歩く
		// d[i] = h → i番目の山のありえる高さは h 通り
		// d[i] = 0 → i番目の山のありえる高さは 1 通り
		long[] d = new long[n];
		d[n - 1] = 0;
		for (int i = n - 2; 0 <= i; i--) {
			d[i] = (b[i] == b[i + 1]) ? b[i] : 0;
		}

		// 確認用
//		System.out.println(Arrays.toString(c));
//		System.out.println(Arrays.toString(d));

		// 推理
		// e[i] = h → i番目の山のありえる高さは h 通り
		long[] e = new long[n];
		for (int i = 0; i < n; i++) {
			if (c[i] == 0 || d[i] == 0) {
				e[i] = 1;
				if (c[i] == 0 && d[i] == 0 && a[i] != b[i]) {
					System.out.println(0);
					return;
				}
				if (c[i] == 0 && d[i] != 0 && a[i] > d[i]) {
					System.out.println(0);
					return;
				}
				if (c[i] != 0 && d[i] == 0 && c[i] < b[i]) {
					System.out.println(0);
					return;
				}
			} else {
				e[i] = Math.min(c[i], d[i]);
			}
		}

		// 確認用
//		System.out.println(Arrays.toString(e));

		// こたえ
		long result = 1;
		long mod = 1000000000 + 7;
		for (int i = 0; i < n; i++) {
			result *= e[i];
			result %= mod;
		}
		System.out.println(result);

	}
}

Submission Info

Submission Time
Task C - Two Alpinists
User tobi00604
Language Java (OpenJDK 11.0.6)
Score 400
Code Size 1949 Byte
Status AC
Exec Time 492 ms
Memory 61404 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 21
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt
Case Name Status Exec Time Memory
0_000.txt AC 101 ms 35380 KiB
0_001.txt AC 108 ms 35236 KiB
0_002.txt AC 107 ms 35312 KiB
0_003.txt AC 101 ms 35456 KiB
1_004.txt AC 104 ms 35380 KiB
1_005.txt AC 107 ms 35320 KiB
1_006.txt AC 106 ms 35328 KiB
1_007.txt AC 112 ms 35376 KiB
1_008.txt AC 396 ms 61404 KiB
1_009.txt AC 414 ms 59964 KiB
1_010.txt AC 439 ms 60704 KiB
1_011.txt AC 492 ms 60220 KiB
1_012.txt AC 432 ms 60452 KiB
1_013.txt AC 431 ms 60188 KiB
1_014.txt AC 450 ms 60680 KiB
1_015.txt AC 414 ms 60400 KiB
1_016.txt AC 407 ms 60668 KiB
1_017.txt AC 417 ms 60396 KiB
1_018.txt AC 366 ms 59820 KiB
1_019.txt AC 366 ms 59944 KiB
1_020.txt AC 393 ms 60040 KiB