Submission #24027008


Source Code Expand

import java.util.*;

public class Main {

	public static void main(String[] args) {

		// 入力
		Scanner sc = new Scanner(System.in);
		String s1 = sc.next();
		String s2 = sc.next();
		String s3 = sc.next();
		int n = s1.length() / 2;

		// 各文字の登場回数
		Map<Integer, Integer> m1 = new HashMap<Integer, Integer>();
		Map<Integer, Integer> m2 = new HashMap<Integer, Integer>();
		Map<Integer, Integer> m3 = new HashMap<Integer, Integer>();
		for (int i = 'A'; i <= 'Z'; i++) {
			m1.put(i, 0);
			m2.put(i, 0);
			m3.put(i, 0);
		}
		for (int i = 0; i < n * 2; i++) {
			m1.replace(s1.charAt(i) + 0, m1.get(s1.charAt(i) + 0) + 1);
			m2.replace(s2.charAt(i) + 0, m2.get(s2.charAt(i) + 0) + 1);
			m3.replace(s3.charAt(i) + 0, m3.get(s3.charAt(i) + 0) + 1);
		}

		// 判定材料
		int totalP = 0;
		int totalQ = 0;
		for (int i = 'A'; i <= 'Z'; i++) {

			// 1つめの金属からp個は取らなければならない
			int p = Math.max(0, m3.get(i) - m2.get(i));
			totalP += p;

			// 1つめの金属からq個まで取っていい
			int q = Math.min(Math.min(m1.get(i), m3.get(i)), n);
			totalQ += q;

			// 確認用
//			System.out.println("1つめの金属から取る" + (char) i + "は" + p + "~" + q + "個");

		}

		// こたえ
		System.out.println((totalP <= n && n <= totalQ) ? "YES" : "NO");

	}
}

Submission Info

Submission Time
Task C - 錬金術士
User tobi00604
Language Java (OpenJDK 11.0.6)
Score 100
Code Size 1391 Byte
Status AC
Exec Time 298 ms
Memory 46124 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 40
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.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, 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
Case Name Status Exec Time Memory
sample_01.txt AC 116 ms 35480 KiB
sample_02.txt AC 116 ms 35360 KiB
subtask1_01.txt AC 252 ms 44404 KiB
subtask1_02.txt AC 135 ms 37288 KiB
subtask1_03.txt AC 298 ms 45128 KiB
subtask1_04.txt AC 256 ms 44000 KiB
subtask1_05.txt AC 263 ms 45668 KiB
subtask1_06.txt AC 201 ms 40136 KiB
subtask1_07.txt AC 244 ms 43496 KiB
subtask1_08.txt AC 166 ms 40220 KiB
subtask1_09.txt AC 208 ms 40676 KiB
subtask1_10.txt AC 243 ms 41452 KiB
subtask1_11.txt AC 240 ms 44164 KiB
subtask1_12.txt AC 262 ms 46124 KiB
subtask1_13.txt AC 213 ms 40432 KiB
subtask1_14.txt AC 238 ms 41604 KiB
subtask1_15.txt AC 266 ms 46072 KiB
subtask1_16.txt AC 175 ms 39848 KiB
subtask1_17.txt AC 147 ms 37740 KiB
subtask1_18.txt AC 244 ms 41868 KiB
subtask1_19.txt AC 213 ms 40192 KiB
subtask2_01.txt AC 116 ms 35392 KiB
subtask2_02.txt AC 121 ms 35536 KiB
subtask2_03.txt AC 115 ms 35356 KiB
subtask2_04.txt AC 114 ms 35324 KiB
subtask2_05.txt AC 113 ms 35324 KiB
subtask2_06.txt AC 112 ms 35400 KiB
subtask2_07.txt AC 107 ms 35444 KiB
subtask2_08.txt AC 113 ms 35524 KiB
subtask2_09.txt AC 116 ms 35316 KiB
subtask2_10.txt AC 112 ms 35272 KiB
subtask2_11.txt AC 115 ms 35468 KiB
subtask2_12.txt AC 121 ms 35468 KiB
subtask2_13.txt AC 114 ms 35348 KiB
subtask2_14.txt AC 108 ms 35396 KiB
subtask2_15.txt AC 121 ms 35288 KiB
subtask2_16.txt AC 112 ms 35352 KiB
subtask2_17.txt AC 118 ms 35536 KiB
subtask2_18.txt AC 108 ms 35376 KiB
subtask2_19.txt AC 118 ms 35452 KiB