Дополнительный вход - PullRequest
       15

Дополнительный вход

0 голосов
/ 06 октября 2018

Я работаю над проблемой Каттис.Я не уверен, как получить второй набор входных данных для распознавания и обработки.Можете ли вы кому-нибудь предложить помощь?

Вот подробности:

Инструкция:

Ввод:
В первой строке ввода указано количество тестов,Есть две строки для каждого теста.Первый показывает количество магазинов, которые нужно посетить, а второй - целые позиции на Лонг-стрит.

Вывод:
Вывод для каждого тестового примера строки с минимальным шагом пешком при оптимальной парковке.

Пример ввода и вывода:

Вход
2
4
24 13 89 37
6
7 30 41 14 39 42

вывод:
152
70

Итак,в основном, вы берете разницу между самым большим и самым маленьким и удваиваете ее.Я получил первый набор данных (24, 13, 89, 37) для вычисления 152, но моя программа игнорирует второй набор данных (7, 30, 41, 14, 39, 42).Вот код:

    public static void main(String[] args) {
    //create scanner for input
    Scanner in = new Scanner (System.in);

    //create variables for first two input lines
    int cases = in.nextInt();
    int numOfStores = in.nextInt();

    //initialize array
    int numArray [] = new int[numOfStores];

    //assign values to array
    for (int i = 0; i < numArray.length; i++){
        numArray[i] = in.nextInt();}

    //sort array
    Arrays.sort(numArray);

    //set min value to first index position of array
    int min = numArray[0];

    //set max value to last index position of array
    int max = numArray[numArray.length - 1];

    //print out the difference of max and min multiplied by 2 for     distance to and from
    System.out.println((max - min) * 2);

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Вам нужно добавить цикл выше для количества тестовых случаев.Кроме того, вам нужно поместить результаты в список, чтобы вы могли, наконец, отобразить их на консоли.

        import java.util.Scanner;
        import java.util.ArrayList;
        import java.util.Arrays;

        class Kattis {

            public static void main(String[] args) {
                // Create scanner for number of test cases.
                System.out.println("Input");
                Scanner in = new Scanner(System.in);
                int numTestCases = in.nextInt();

                ArrayList<Integer> out = new ArrayList<>();

                for (int t = 0; t < numTestCases; ++t) {

                    int numOfStores = in.nextInt();

                    // initialize array
                    int numArray[] = new int[numOfStores];

                    // assign values to array
                    for (int i = 0; i < numArray.length; i++) {
                        numArray[i] = in.nextInt();
                    }

                    // sort array
                    Arrays.sort(numArray);

                    // set min value to first index position of array
                    int min = numArray[0];

                    // set max value to last index position of array
                    int max = numArray[numArray.length - 1];

                    // print out the difference of max and min multiplied by 2 for distance to and


                    out.add((max - min) * 2);
                }
                in.close();
                System.out.println("Output");
                for (Integer data : out) {
                    System.out.println(data);
                }
            }
        }
0 голосов
/ 06 октября 2018

Вы должны зациклить свой код, сколько раз вводятся регистры.Таким образом, вы можете использовать цикл for.

int cases = in.nextInt();
for(int c = 0; c < cases; c++){
  //rest of the code
}
...