Submission #207639


Source Code Expand

import java.util.HashSet;
import java.util.Set;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int num = scanner.nextInt();
		String str1 = scanner.next();
		String str2 = scanner.next();
		String word = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

		char[] chr1 = str1.toCharArray();
		char[] chr2 = str2.toCharArray();

		Set<Character> knownChar = new HashSet<Character>();
		Set<Character> existChar = new HashSet<Character>();

		for (int i = 0; i < num; ++i) {
			if (isAlpha(chr1[i]) && isAlpha(chr2[i])) {

			} else if (isAlpha(chr1[i])) {
				knownChar.add(chr1[i]);
			} else if (isAlpha(chr2[i])) {
				knownChar.add(chr2[i]);
			}
		}

		boolean flag = true;
		while (flag) {
			flag = false;
			for (int i = 0; i < num; ++i) {
				if (isAlpha(chr1[i]) && isAlpha(chr2[i])) {
					if (knownChar.contains(chr1[i])
							|| knownChar.contains(chr2[i])) {
						if (!(knownChar.contains(chr1[i])
								&& knownChar.contains(chr2[i]))) {
							knownChar.add(chr1[i]);
							knownChar.add(chr2[i]);
							flag = true;
						}
					}
				}
			}
		}

		String ans = "1";

		for (int i = 0; i < num; ++i) {
			if (i == 0) {
				if (isAlpha(chr1[i]) && isAlpha(chr2[i])) {
					if (!knownChar.contains(chr1[i])
							&& !knownChar.contains(chr2[i])) {
						ans = "9";
					}
				}

				if (isAlpha(chr1[i])) {
					existChar.add(chr1[i]);
				} 
				if (isAlpha(chr2[i])) {
					existChar.add(chr2[i]);
				}
			} else {
				if (isAlpha(chr1[i]) && isAlpha(chr2[i])) {
					if (!knownChar.contains(chr1[i])
							&& !knownChar.contains(chr2[i])) {
						if (!existChar.contains(chr1[i])
								&& !existChar.contains(chr2[i])) {
							ans += "0";
						}
					}
				}
				if (isAlpha(chr1[i])) {
					existChar.add(chr1[i]);
				}
				if (isAlpha(chr2[i])) {
					existChar.add(chr2[i]);
				}
			}
		}
		
		System.out.println(ans);
	}

	private static boolean isAlpha(char c) {
		if (c >= 'A' && c <= 'Z') {
			return true;
		}
		return false;
	}
}

Submission Info

Submission Time
Task B - 大事な数なのでZ回書きまLた。
User uriku
Language Java (OpenJDK 1.7.0)
Score 100
Code Size 2131 Byte
Status AC
Exec Time 474 ms
Memory 23356 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 29
AC × 55
Set Name Test Cases
Sample subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt
Subtask1 subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt
Subtask2 subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt, subtask2-21.txt, subtask2-22.txt, subtask2-23.txt, subtask2-24.txt, subtask2-25.txt, subtask2-26.txt
Case Name Status Exec Time Memory
subtask0-sample01.txt AC 440 ms 23356 KB
subtask0-sample02.txt AC 439 ms 23216 KB
subtask0-sample03.txt AC 441 ms 23220 KB
subtask1-01.txt AC 441 ms 23180 KB
subtask1-02.txt AC 432 ms 23220 KB
subtask1-03.txt AC 434 ms 23216 KB
subtask1-04.txt AC 433 ms 23220 KB
subtask1-05.txt AC 435 ms 23216 KB
subtask1-06.txt AC 433 ms 23220 KB
subtask1-07.txt AC 436 ms 23316 KB
subtask1-08.txt AC 437 ms 23220 KB
subtask1-09.txt AC 433 ms 23216 KB
subtask1-10.txt AC 436 ms 23328 KB
subtask1-11.txt AC 432 ms 23220 KB
subtask1-12.txt AC 431 ms 23216 KB
subtask1-13.txt AC 441 ms 23220 KB
subtask1-14.txt AC 433 ms 23220 KB
subtask1-15.txt AC 437 ms 23176 KB
subtask1-16.txt AC 436 ms 23332 KB
subtask1-17.txt AC 444 ms 23092 KB
subtask1-18.txt AC 438 ms 23220 KB
subtask1-19.txt AC 436 ms 23084 KB
subtask1-20.txt AC 431 ms 23216 KB
subtask1-21.txt AC 458 ms 23216 KB
subtask1-22.txt AC 444 ms 23088 KB
subtask1-23.txt AC 444 ms 23216 KB
subtask1-24.txt AC 437 ms 23220 KB
subtask1-25.txt AC 439 ms 23092 KB
subtask1-26.txt AC 438 ms 23132 KB
subtask2-01.txt AC 461 ms 23220 KB
subtask2-02.txt AC 439 ms 23220 KB
subtask2-03.txt AC 438 ms 23092 KB
subtask2-04.txt AC 439 ms 23296 KB
subtask2-05.txt AC 442 ms 23316 KB
subtask2-06.txt AC 451 ms 23220 KB
subtask2-07.txt AC 448 ms 23092 KB
subtask2-08.txt AC 431 ms 23220 KB
subtask2-09.txt AC 432 ms 23216 KB
subtask2-10.txt AC 435 ms 23220 KB
subtask2-11.txt AC 449 ms 23216 KB
subtask2-12.txt AC 439 ms 23220 KB
subtask2-13.txt AC 439 ms 23216 KB
subtask2-14.txt AC 439 ms 23216 KB
subtask2-15.txt AC 435 ms 23216 KB
subtask2-16.txt AC 453 ms 23092 KB
subtask2-17.txt AC 432 ms 23192 KB
subtask2-18.txt AC 437 ms 23340 KB
subtask2-19.txt AC 435 ms 23220 KB
subtask2-20.txt AC 438 ms 23092 KB
subtask2-21.txt AC 433 ms 23220 KB
subtask2-22.txt AC 443 ms 23220 KB
subtask2-23.txt AC 437 ms 23216 KB
subtask2-24.txt AC 435 ms 23216 KB
subtask2-25.txt AC 438 ms 23092 KB
subtask2-26.txt AC 474 ms 23284 KB