1

Тема: Алготестер задача № 1531. Помічники Санта Клауса

https://algotester.com/uk/ArchiveProble … File/40699
Алгоритм буцімто правильний та й контрольні тести проходить, але коли закидаю на перевірку видає помику(неправильна відповідь).

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Santa santa = new Santa();
        if (santa.is_it_good() == "YES") System.out.println("YES");
        else {
            System.out.println("NO");
            santa.print_for_NO();
        }

    }
}

class Santa{
    private int n;
    private int arr_before[] , arr_after[];

    public Santa(){
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        arr_before = new int[n];
        arr_after = new int[n];
        for (int i = 0; i < n; i++) arr_before[i] = in.nextInt();
        for (int i = 0; i < n; i++) arr_after[i] = in.nextInt();
    }

    public String is_it_good(){
        for (int i = 0; i < n/2; i++){
            if (arr_before[i] != arr_after[n - i - 1]) return "NO";
        }
        return "YES";
    }

    public void print_for_NO(){
        for (int i = n - 1; i >= 0; i--) System.out.print(arr_before[i] + " ");
    }

}

Дякую за допомогу!

2

Re: Алготестер задача № 1531. Помічники Санта Клауса

Схоже, зайвий пробіл.
Ну і якщо функція is_it_good повертає одне з двох можливих значень, то це має бути bool.

Подякували: zxzpogoncuk1

3

Re: Алготестер задача № 1531. Помічники Санта Клауса

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Santa santa = new Santa();
        if (santa.is_it_good()) System.out.println("YES");
        else {
            System.out.println("NO");
            santa.print_for_NO();
        }

    }
}

class Santa{
    private int n;
    private int arr_before[] , arr_after[];

    public Santa(){
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        arr_before = new int[n];
        arr_after = new int[n];
        for (int i = 0; i < n; i++) arr_before[i] = in.nextInt();
        for (int i = 0; i < n; i++) arr_after[i] = in.nextInt();
    }

    public boolean is_it_good(){
        for (int i = 0; i < n/2; i++){
            if (arr_before[i] != arr_after[n - i - 1]) return false;
        }
        return true;
    }

    public void print_for_NO(){
        for (int i = n - 1; i >= 0; i--){
            if (i != 0){
                System.out.print(arr_before[i] + " " );
            } else {
                System.out.print(arr_before[i]);
            }
        }
    }

}

Проблеми це не вирішило.

4

Re: Алготестер задача № 1531. Помічники Санта Клауса

А чому ви лише половину масиву перевіряєте?

Подякували: zxzpogoncuk1

5

Re: Алготестер задача № 1531. Помічники Санта Клауса

Якщо одна половина ельфів стала правильно, то це означає, що вони помінялись з тими ельфами якими потрібно(з другою половиною). Але це не так важливо, бо я пробував і з повним переглядом масиву.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Santa santa = new Santa();
        if (santa.is_it_good()) System.out.println("YES");
        else {
            System.out.println("NO");
            santa.print_for_NO();
        }

    }
}

class Santa{
    private int n;
    private int arr_before[] , arr_after[];

    public Santa(){
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        arr_before = new int[n];
        arr_after = new int[n];
        for (int i = 0; i < n; i++) arr_before[i] = in.nextInt();
        for (int i = 0; i < n; i++) arr_after[i] = in.nextInt();
    }

    public boolean is_it_good(){
        for (int i = 0; i < n; i++){
            if (arr_before[i] != arr_after[n - i - 1]) return false;
        }
        return true;
    }

    public void print_for_NO(){
        for (int i = n - 1; i >= 0; i--){
            if (i != 0){
                System.out.print(arr_before[i] + " " );
            } else {
                System.out.print(arr_before[i]);
            }
        }
    }

}