Помощ за две задачи от предишни изпити
Не мога да довърша две задачи от предишни изпити, ако може малко помощ:
1.Първата е от последния изпит. Не мога да загръгля BigIntiger 
Това е кода
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;
public class dasdasa {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num1 = Integer.parseInt(scanner.nextLine());
        int num2 = Integer.parseInt(scanner.nextLine());
        String [] name = new String[num1];
        int [] visits = new int[num1];
        double [] price = new double[num1];
        BigDecimal [] multiply = new BigDecimal[num1];
        BigDecimal total = new BigDecimal("0.0");
        for (int i = 0; i <num1 ; i++) {
            name[i]=scanner.next();
            visits[i]=Integer.parseInt(scanner.next());
            price[i]=Double.parseDouble(scanner.next());
            multiply[i]=BigDecimal.valueOf(visits[i]*price[i]);
        }
        for (int i = 0; i < num1; i++) {
            total = total.add(multiply[i]);
        }
        for(String start: name){
            System.out.println(start);
        }
        double securityToken = Math.pow(num2,num1);
        System.out.printf("Total Loss: %.20f%n",total);
        System.out.printf("Security Token: %.0f",securityToken);
    }
}
2. Втората е тази https://judge.softuni.bg/Contests/Practice/DownloadResource/1844
Тук на грешките джъдж не ми дава инпът и ми е трудно да разбера къде греша. Това е кода:
import java.math.BigDecimal;
import java.util.Scanner;
public class Testt {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] time = scanner.nextLine().split("[:]");
        int steps = Integer.parseInt(scanner.nextLine());
        int second = Integer.parseInt(scanner.nextLine());
        int total =steps*second;
        int hours = (total / 3600)+Integer.parseInt(time[0]);
        int minutes = ((total % 3600) / 60)+Integer.parseInt(time[1]);
        int seconds = (total % 60)+Integer.parseInt(time[2]);
        if(seconds==60){
            minutes++;
            seconds=00;
        }
        if(minutes==60){
            hours++;
            minutes=00;
        }
        if(seconds>60){
            seconds=seconds%60;
            minutes++;
        }
        if(minutes>60){
            hours+=minutes%60;
            hours++;
        }
        if(hours>=24){
            hours=hours-24;
        }
        System.out.printf("Time Arrival: %02d:%02d:%02d", hours, minutes, seconds);
    }
}
        
Съдейки по изходите ми изглежда, че трябва да изчисляваш каква точност след десетичната запетая ти трябва и да построяваш патърна динамично според нужната точност.
Ами не ми изглежда динамично. В C# се слага един decimal и джъдж дава 100/100.
В Java не знам защо не се получава. Ето това ми е пълния код
import java.text.DecimalFormat; import java.util.Scanner; public class Testt { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = Integer.parseInt(scanner.nextLine()); double total = 0; for (int i = 0; i <count ; i++) { long length = Long.parseLong(scanner.nextLine()); double width = Double.parseDouble(scanner.nextLine()); long lengthWing = Long.parseLong(scanner.nextLine()); total=(length*length)*(width+(2*lengthWing)); DecimalFormat df = new DecimalFormat("#.###"); System.out.println(df.format(total)); } } }В constraints пише - The total years should have the same accuracy as the total width. Т.е. всеки път ще имаш различна точност след десетичната запетая, в зависимост от входа, следователно патърна е динамичен. Ето решение - https://pastebin.com/H6KTutWc. Само че един тест пак ще ти гърми и като прочетеш отново constraints - The total width of the body of the phoenix will have up to 20 digits after the decimal point. Double няма достатъчно точност и ти трябва BigDecimal, а с него няма да има нужда да се занимаваш с патърните - https://pastebin.com/sMu5AD4G.