Максимальное количество проходных тестовых случаев, кроме WA - PullRequest
0 голосов
/ 06 декабря 2018

Получение ошибки в этом коде, даже если он прошел основные тестовые случаи.Но, тем не менее, он дает неправильный ответ.

Не удается найти тестовый случай, если он не проходит, Решение Codechef Подсчет максимальной проблемы.Я думаю, что часть кода приводит к сбою в некоторых тестовых случаях.

Может кто-нибудь помочь мне найти ошибку в этом коде, пожалуйста?

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int k;
    cin >> k;
    for (int j = 0; j < k; j++) 
    {
        int n;
        cin >> n;
        int a[n];
        for (int i = 0; i < n; i++) {
            cin >> a[i];
        }
        int maxCount = 0;
        int number;
        int index = 0;

        for (int i = 0; i < n; i++) 
        {
            int count = 0;
            for (int l = 0; l < n; l++)
            {
                if (a[i] == a[l])
                {
                    count++;
                    if (count > maxCount) 
                    {
                        maxCount = count;
                        index = i;
                    }
                    if (count == maxCount) {
                        (a[i] > a[index]) ? number = a[index] : number = a[i];
                    }
                }
            }
        }
        cout << number << " " << maxCount << endl;
    }
}

1 Ответ

0 голосов
/ 06 декабря 2018

Ваша переменная number является избыточной.Вам необходимо отслеживать index элементов в массиве.

Это означает, что измените эту строку

 (a[i] > a[index]) ? number = a[index] : number = a[i];

на

(a[i] > a[index]) ? index = index : index = i;

и напечатайте

std::cout << a[index] << " " << maxCount << std::endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...