Квалификация 2019. Задача A

 

Задача в оригинале. Если кратко перевести: есть число N, содержащее цифру 4. Надо найти два числа A и B, которые в сумме будут давать N и не будут содержать цифру 4.

Решение простое. Посимвольный перебор числа N. Если встретили '4', в число A записываем '2', в число B записываем '2', иначе в число A записываем символ, в число B записываем '0'

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution {

    public static void main(String[] args) throws IOException {
        // write your code here
        BufferedReader br = null;
        if (args.length > 0)
            br = new BufferedReader(new FileReader(args[0]));
        else
            br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());
        for (int tt = 1; tt <= t; ++tt) {
            char[] a = br.readLine().toCharArray();
            boolean start = false;
            ArrayList<Character> b = new ArrayList<>();
            for (int i = 0; i < a.length; ++i) {
                if (a[i] == '4') {
                    a[i] = '2';
                    b.add('2');
                    start = true;
                } else {
                    if (start)
                        b.add('0');
                }
            }
            System.out.print("Case #" + tt + ": " + String.valueOf(a) + " ");
            for(char c : b)
                System.out.print(c);
            System.out.println();
        }
    }
} 

 

Published on May 23rd, 2019