Submission #1533614


Source Code Expand

import java.util.*;
public class Main{
	public static class Node{
		char c;
		ArrayList<Character> to;
		boolean v;
		boolean use;
		boolean visit;
		boolean top;
		Node(){
			to = new ArrayList<Character>();
			use = false;
			visit = false;
			v = false;
			top = false;
		}
	}
	static Scanner sn = new Scanner(System.in);
	static int N = sn.nextInt();
	static String s1 = sn.next();
	static String s2 = sn.next();
	static Node[] alpha = new Node[26];
	static boolean flag = false;
	static boolean flag2 = false;
 	public static void main(String[] args){		
		for(int i = 0; i < 26; ++i){
			Node n = new Node();
			n.c = (char)('A' + i);
			alpha[i] = n;
		}
		for(int i = 0; i < N; ++i){
			char c1 = s1.charAt(i);
			char c2 = s2.charAt(i);
			if(!check_int(c1) && !check_int(c2)){
				if(c1 == c2){
					int ind = (int)c1 - (int)'A';
					alpha[ind].use = true;
					if(i == 0) alpha[ind].top = true;
				}
				else{
					int ind = (int)c1 - (int)'A';
					int ind2 = (int)c2 - (int)'A';
					alpha[ind].use = true;
					alpha[ind2].use = true;
					alpha[ind].to.add(c2);
					alpha[ind2].to.add(c1);
					if(i == 0){
						alpha[ind].top = true;
						alpha[ind2].top = true;
					}
				}
			}
			else if(!check_int(c1) && check_int(c2)){
				int ind = (int)c1 - (int)'A';
				alpha[ind].use = true;
				alpha[ind].v = true;
			}
			else if(check_int(c1) && !check_int(c2)){
				int ind2 = (int)c2 - (int)'A';
				alpha[ind2].use = true;
				alpha[ind2].v = true;
			}
		}
		
		long ans = 1L;
		for(int i = 0; i < 26; ++i){
			if(!alpha[i].use || alpha[i].visit) continue;			
			flag = false;
			flag2 = false;
			alpha[i].visit = true;
			solve(alpha[i]);
			if(flag2 && !flag) ans *= 9;
			else if(!flag2 && !flag) ans *= 10;
		}
		System.out.println(ans);
	}
	
	public static void solve(Node node){
		if(node.v) flag = true;
		if(node.top) flag2 = true;
		for(int i = 0; i < node.to.size(); ++i){
			int next = node.to.get(i) - 'A';
			if(alpha[next].visit) continue;
			alpha[next].visit = true;			
			solve(alpha[next]);
		}
	}
	
	public static boolean check_int(char c){
		if(c == '0' || c == '1'|| c == '2'|| c == '3'|| c == '4'|| c == '5'|| c == '6'|| c == '7'|| c == '8'|| c == '9'){
			return true;
		}
		else{
			return false;
		}
	}
}

Submission Info

Submission Time
Task B - 大事な数なのでZ回書きまLた。
User suesue
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 2349 Byte
Status AC
Exec Time 108 ms
Memory 23764 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 93 ms 21844 KB
subtask0-sample02.txt AC 94 ms 20692 KB
subtask0-sample03.txt AC 97 ms 19284 KB
subtask1-01.txt AC 92 ms 19924 KB
subtask1-02.txt AC 93 ms 21844 KB
subtask1-03.txt AC 94 ms 21844 KB
subtask1-04.txt AC 108 ms 20688 KB
subtask1-05.txt AC 94 ms 21844 KB
subtask1-06.txt AC 96 ms 21204 KB
subtask1-07.txt AC 97 ms 19796 KB
subtask1-08.txt AC 97 ms 20688 KB
subtask1-09.txt AC 94 ms 19540 KB
subtask1-10.txt AC 98 ms 21460 KB
subtask1-11.txt AC 94 ms 21076 KB
subtask1-12.txt AC 95 ms 21972 KB
subtask1-13.txt AC 103 ms 21716 KB
subtask1-14.txt AC 93 ms 19924 KB
subtask1-15.txt AC 94 ms 21844 KB
subtask1-16.txt AC 94 ms 21076 KB
subtask1-17.txt AC 93 ms 20688 KB
subtask1-18.txt AC 96 ms 23764 KB
subtask1-19.txt AC 94 ms 21844 KB
subtask1-20.txt AC 94 ms 21844 KB
subtask1-21.txt AC 97 ms 19796 KB
subtask1-22.txt AC 95 ms 21716 KB
subtask1-23.txt AC 95 ms 19024 KB
subtask1-24.txt AC 102 ms 21844 KB
subtask1-25.txt AC 95 ms 21332 KB
subtask1-26.txt AC 97 ms 19668 KB
subtask2-01.txt AC 99 ms 21844 KB
subtask2-02.txt AC 97 ms 20692 KB
subtask2-03.txt AC 97 ms 20692 KB
subtask2-04.txt AC 99 ms 21844 KB
subtask2-05.txt AC 95 ms 21844 KB
subtask2-06.txt AC 94 ms 19924 KB
subtask2-07.txt AC 94 ms 21844 KB
subtask2-08.txt AC 95 ms 20692 KB
subtask2-09.txt AC 94 ms 21716 KB
subtask2-10.txt AC 95 ms 19924 KB
subtask2-11.txt AC 93 ms 20692 KB
subtask2-12.txt AC 96 ms 23252 KB
subtask2-13.txt AC 96 ms 19020 KB
subtask2-14.txt AC 96 ms 21588 KB
subtask2-15.txt AC 103 ms 21460 KB
subtask2-16.txt AC 93 ms 19540 KB
subtask2-17.txt AC 95 ms 19412 KB
subtask2-18.txt AC 95 ms 21076 KB
subtask2-19.txt AC 96 ms 19028 KB
subtask2-20.txt AC 99 ms 21844 KB
subtask2-21.txt AC 101 ms 21844 KB
subtask2-22.txt AC 94 ms 18900 KB
subtask2-23.txt AC 96 ms 23124 KB
subtask2-24.txt AC 96 ms 21716 KB
subtask2-25.txt AC 97 ms 20692 KB
subtask2-26.txt AC 94 ms 21844 KB