Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <fstream>
- #include <iostream>
- using namespace std;
- // Получение суммы A[][] по столбцам в sum[]
- void get_sum(int**A, int *sum)
- {
- for (int i = 0; i < 5; i++) sum[i] = 0;
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- sum[i] += A[j][i];
- }
- }
- }
- // Выбор номеров столбцов с нулевой суммуой
- // и добавление их в delete_list
- int get_index(int *sum, int *index, int *delete_list)
- {
- int j = 0; int max_i = 0;
- for (int i = 0; i < 5; i++) {
- if (sum[i] == 0) { index[j] = i; j++; delete_list[i] = 1; max_i++; }
- }
- return max_i;
- }
- // заполнение строк из delete_list нулями
- void do_fill(int**A, int *delete_list)
- {
- int i;
- for (i = 0; i < 5; i++) {
- if (delete_list[i] == 1) {
- for (int j = 0; j < 5; j++) {
- A[i][j] = 0;
- }
- }
- }
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- ifstream in("in.txt");
- int **A = new int*[5];
- for (int i = 0; i < 5; ++i)
- A[i] = new int[5];
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- in >> A[i][j];
- }
- }
- int sum[5];
- int index[5];
- int max_i = 0;
- int delete_list[5] = { 0, 0, 0, 0, 0 };
- for (int i = 0; i < 5; i++) {
- get_sum(A, sum);
- // если сумма по всем столбцам 0 - записать оставшиеся вершины и выйти из цикла
- if (sum[0] == 0 && sum[1] == 0 && sum[2] == 0 && sum[3] == 0 && sum[4] == 0) {
- for (int i = 0; i < 5; i++) {
- if (delete_list[i] == 0) { index[max_i] = i; max_i++; }
- }
- break;
- }
- max_i = get_index(sum, index, delete_list);
- do_fill(A, delete_list);
- }
- for (int i = 0; i < 5; i++) {
- cout << index[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement