Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Двумерные массивы

Ответить
Настройки темы
C/C++ - Двумерные массивы

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Given a matix NxM.
Your task is to form one dimention array "B" that wil hold only positive elements from the given matrix sorted in ascending order.
Hint: Use vectors.


Input
First line N and M (1<=N,M<=100).
Then NxM table is given(all number are integers)

Output
First line have to contain total number of positive elements in the matrix.
The next line have to contain all positive elements from the matrix.

Sample input:
3 3
1 0 1
3 -1 0
0 -1 -1

Sample output:
3
1 1 3

Отправлено: 18:29, 10-10-2010

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


не оптимальный, но лаконичный вариант:
Код: Выделить весь код
vector<row_type> source;
// заполнить как-то source
...

vector<int> result;

// сливаем всё в один
for(vector<vector<int> >::iterator s1=source.begin(), s2=source.end(); s1!=s2; ++s1)
{
   result.insert(result.end(), s1->begin(), s1->end());
}

sort(result.begin(), result.end());
// удаляем дубли
result.erase(unique(result.begin(), result.end()), result.end());
// удаляем *j <= 0
result.erase(result.begin(), upper_bound(result.begin(), result.end(), 0));

// дальше вывод
...

Отправлено: 20:59, 10-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4462
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


pva, дубли удалять не надо. Надо отчистить вектор от нулевых и отрицательных элементов.

Кстати, про шифрование потоков "на лету" я слышал.
А можно ли проводить сортировку "на лету" ? Т.е. что бы конечный массив MxN был предварительно отсортирован? Даст ли это выигрыш на стадии конечной сортировки?
При объединение стадий ввода и сортировки, это скорей всего даст сложную работу с поиском в дереве, работу с указателями и т.д.
Зато у нас будет сбалансированное дерево на выходе, и конечный результат будет получен обходом дерева. Хм... интересно

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 06:05, 11-10-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Двумерные массивы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Двумерные массивы Hardcore Программирование и базы данных 3 05-10-2010 22:35
C/C++ - Массивы SS3 Программирование и базы данных 3 29-04-2009 21:47
Массивы в С++ Guest Программирование и базы данных 2 27-09-2004 10:12
Динамические двумерные массивы Nealles Программирование и базы данных 3 05-09-2003 21:59
C++ и массивы ? IG Программирование и базы данных 9 09-06-2003 09:33




 
Переход