Ссылка на задачу: https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ff08/0000000000387171
Задача: Исяне указано количество посетителей в ее местном тематическом парке N дней подряд. Количество посетителей в i-й день - Vi. День является рекордным, если он удовлетворяет обоим из следующих условий:
- Количество посетителей в этот день строго превышает количество посетителей в каждый из предыдущих дней.
- Либо это последний день, либо количество посетителей в этот день строго превышает количество посетителей на следующий день.
Обратите внимание, что самый первый день может быть рекордным - день наступления! Пожалуйста, помогите Исяне узнать количество рекордных дней.
Ввод: Первая строка входных данных дает количество тестовых примеров, далее следуют тестовые примеры 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, и, похоже, он отлично работает. Пожалуйста, дайте мне знать, в чем может быть возможная причина этой проблемы.