Volodka
?>

Задача №112296. Самая длинная цепочка Напишите программу, которая находит в массиве самую длинную цепочку одинаковых элементов. Программа должна вывести значение элемента, который встречается наибольшее число раз подряд, и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N ≤ 10000 . Выходные данные Программа должна вывести два числа через пробел: значение элемента массива, который встречается наибольшее число раз подряд, и длину этой цепочки. Примеры входные данные 7 1 2 2 1 1 1 3 выходные данные 1 3 НА С++!!

Информатика

Ответы

Zolotnik974620
Хорошо, давайте решим эту задачу.

Для начала, создадим переменные для хранения текущего элемента и максимальной длины цепочки. Изначально установим их значениями первого элемента массива:

```cpp
int currentElement = array[0];
int maxLength = 1;
```

Затем пройдемся по всем элементам массива с помощью цикла, начиная со второго элемента:

```cpp
for (int i = 1; i < N; i++) {
```

Для каждого элемента будем проверять, равен ли он предыдущему элементу. Если равен, значит, мы находимся в цепочке одинаковых элементов и увеличиваем длину цепочки:

```cpp
if (array[i] == array[i-1]) {
length++;
```

Если же элемент не равен предыдущему, значит, цепочка оборвалась. В этом случае проверяем, является ли текущая длина цепочки максимальной. Если да, то обновляем максимальную длину и текущий элемент:

```cpp
} else {
if (length > maxLength) {
maxLength = length;
currentElement = array[i-1];
}
length = 1;
}
```

После цикла проверяем длину последней цепочки, так как она может быть максимальной. Если да, то также обновляем максимальную длину и текущий элемент:

```cpp
if (length > maxLength) {
maxLength = length;
currentElement = array[N-1];
}
```

Наконец, выводим результаты на экран:

```cpp
cout << currentElement << " " << maxLength << endl;
```

Вот полный код программы:

```cpp
#include
using namespace std;

int main() {
int N;
cin >> N;
int array[N];

for (int i = 0; i < N; i++) {
cin >> array[i];
}

int currentElement = array[0];
int maxLength = 1;
int length = 1;

for (int i = 1; i < N; i++) {
if (array[i] == array[i-1]) {
length++;
} else {
if (length > maxLength) {
maxLength = length;
currentElement = array[i-1];
}
length = 1;
}
}

if (length > maxLength) {
maxLength = length;
currentElement = array[N-1];
}

cout << currentElement << " " << maxLength << endl;

return 0;
}
```

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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задача №112296. Самая длинная цепочка Напишите программу, которая находит в массиве самую длинную цепочку одинаковых элементов. Программа должна вывести значение элемента, который встречается наибольшее число раз подряд, и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N ≤ 10000 . Выходные данные Программа должна вывести два числа через пробел: значение элемента массива, который встречается наибольшее число раз подряд, и длину этой цепочки. Примеры входные данные 7 1 2 2 1 1 1 3 выходные данные 1 3 НА С++!!
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

director
borzhemskaya19823110
Смирнов-Оськина
aeykin
ogonizoloto
kashschool3
mgrunova3966
msburmis
dianabuchkina
egorsalnikov1997139
lenarzhaeva
игнатова_Сергей1228
sabinina0578
rudakovam198
vvb1383