Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Двумерные массивы (http://forum.oszone.net/showthread.php?t=187963)

Hardcore 10-10-2010 18:29 1515777

Двумерные массивы
 
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

pva 10-10-2010 20:59 1515860

не оптимальный, но лаконичный вариант:
Код:

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));

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


lxa85 11-10-2010 06:05 1516060

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

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


Время: 19:27.

Время: 19:27.
© OSzone.net 2001-