Google KickStart Round D - Образец не удался: RE - PullRequest
0 голосов
/ 06 августа 2020

Ссылка на задачу: https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ff08/0000000000387171

Задача: Исяне указано количество посетителей в ее местном тематическом парке N дней подряд. Количество посетителей в i-й день - Vi. День является рекордным, если он удовлетворяет обоим из следующих условий:

  1. Количество посетителей в этот день строго превышает количество посетителей в каждый из предыдущих дней.
  2. Либо это последний день, либо количество посетителей в этот день строго превышает количество посетителей на следующий день.

Обратите внимание, что самый первый день может быть рекордным - день наступления! Пожалуйста, помогите Исяне узнать количество рекордных дней.

Ввод: Первая строка входных данных дает количество тестовых примеров, далее следуют тестовые примеры T. T. Каждый тестовый пример начинается со строки, содержащей целое число N. Вторая строка содержит N целых чисел. I-е целое число равно Vi.

Вывод: Для каждого тестового примера выведите одну строку, содержащую Case #x: y, где x - номер тестового примера (начиная с 1) и y - количество рекордных дней.

Пример:

Ввод

4
8
1 2 0 7 2 0 2 0
6
4 8 15 16 23 42
9
3 1 4 1 5 9 2 6 5
6
9 9 9 9 9 9

Выход

Case #1: 2
Case #2: 1
Case #3: 3
Case #4: 0

Вот мое решение:

import java.util.Scanner;

class RecordBreaker {
    public static void main(String[] args) {
        // Storing the number of test cases
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number of test cases: ");
        int testCases = sc.nextInt();

        // Store the number of record breaking days to output
        int[] recordBreakingDaysList = new int[testCases];

        // Follow the same logic for every test case
        for (int i = 0; i < testCases; i++) {
            System.out.println("Enter the number of consecutive days: ");
            int days = sc.nextInt();

            System.out.println("Enter the number of visitors on each day: ");
            int[] visitors = new int[days];

            // Store the number of visitors on every particular day
            for (int j = 0; j < visitors.length; j++) {
                visitors[j] = sc.nextInt();
            }

            int recordBreakingDays = 0;
            int max = visitors[0];

            // Actual logic
            for (int j = 0; j < visitors.length - 1; j++) {
                // If it is the first day, just compare it to the next day
                if (j == 0)
                    if (visitors[j] > visitors[j+1])
                        recordBreakingDays++;

                 // If the visitors on the jth day is more than all the previous days, execute the if condition
                if (visitors[j] > max) {
                    // Replace the value of max to the number of visitors on the current day
                    max = visitors[j];
                    if (visitors[j] > visitors[j+1]) {
                        recordBreakingDays++;
                    }
                }
            }

            // If it is the last day, just compare it to see if the visitors that day were higher than all the previous days.
            if (visitors[visitors.length-1] > max)
                recordBreakingDays++;

            recordBreakingDaysList[i] = recordBreakingDays;
        }

        // Print the results
        for (int i = 1; i <= recordBreakingDaysList.length; i++) {
            System.out.println("Case #" + i + ": " + recordBreakingDaysList[i-1]);
        }
    }
}

Я не уверен, в чем проблема. Когда я отправляю этот код, я получаю сообщение « Sample Failed: RE ». Я пробовал это в своей локальной среде IDE, и, похоже, он отлично работает. Пожалуйста, дайте мне знать, в чем может быть возможная причина этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...