В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
shamanka12
shamanka12
21.03.2022 11:27 •  Информатика

Андрей придумал новый сжатия данных. Этот основан на достаточно простой идее — если подряд идет несколько одинаковых чисел, почему бы не записать их в виде пары , ? Ладно на самом деле не новый, но, как Андрей считает, достаточно эффективный. Давайте вместе с ним попробуем сжать заданный массив длины n, заменив все вхождения подряд идущих одинаковых чисел вышеуказанным образом. Разумеется, если рядом с числом нет равных ему, надо записать его как , 1. Входные данные В первой строке ввода задано число n — длина изначального массива (1⩽n⩽2⋅105). В следующей строке через пробел перечислены n чисел ai — содержимое массива (1⩽ai⩽109). Выходные данные В первой строке выведите k — количество блоков подряд идущих одинаковых чисел. В следующих k строках должны следовать через пробел пары a,c, где a — следующее число в массиве, а c — количество подряд идущих чисел a.

Показать ответ
Ответ:
elag
elag
13.09.2020 08:01

ИТМО пишете?

GNU C++

#include <iostream>

#include <vector>

using namespace std;

signed main() {

   int N,k=0;

   cin>>N;

   int a[N];

   vector<pair<int,int> >b;

   for(int i=0;i<N;i++)

   {

       cin>>a[i];

   }

   int c = 1;

   for(int i=1;i<N;i++)

   {

       if (a[i]==a[i-1])

       {

           c++;

       }

       else

       {

           b.push_back(make_pair(a[i-1],c));

           c=1,k++;

       }

   }

   b.push_back(make_pair(a[N-1],c));

   cout<<k<<endl;

   for(int i=0;i<b.size();i++)

   {

       cout<<b[i].first<<' '<<b[i].second<<endl;

   }

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота