Sidorenko
?>

Колония клеток представляет собой квадратную матрицу порядка n (n < 500 в колонию проникает m (m < 11) вирусов, которые поражают клетки с координатами (x1, y1), … (xm, ym). за одну единицу времени вирус проникает в клетки, соседние с зараженными (соседними считаются клетки, имеющие общую сторону). требуется написать программу, которая определит время заражения всей колонии.

Информатика

Ответы

kirillreznikov
Program task; const n = 499; m = 1; var a: array [1..n, 1..n] of boolean; i, j, x, y, t: integer; b: boolean; begin randomize; while i < m do begin x : = random(n) + 1; y : = random(n) + 1; if a[x, y] = false then begin a[x, y] : = true; i : = i + 1; end; end; while b = false do begin b : = true; for i : = 1 to n do for j : = 1 to n do begin if a[i, j] = true then begin if (i + 1) < = n then a[i + 1, j] : = true; if (i - 1) > 0 then a[i - 1, j] : = true; if(j + 1) < = n then a[i, j + 1] : = true; if (j -1) > 0 then a[i, j - 1] : = true; end; end; for i : = 1 to n do for j : = 1 to n do if a[i, j] = false then b : = false; t : = t + 1; end; writeln(t); readln; end.
mayskiyandrey90

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

#include < iostream>

#include < clocale>

#include < cstdlib>

int sum_arr(int arr[], int size)

{

int sum = 0;

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

  sum += arr[i];

return sum;

}

void swap_arr(int arr1[], int arr2[], int size)

{

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

  std: : swap(arr1[i], arr2[i]);

}

int main()

{

int n, m;

std: : cin > > n > > m;

int** arr = new int* [n];

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

  arr[i] = new int[m];

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

{

  for (int j = 0; j < m; j++)

  arr[i][j] = std: : rand() % 100;

}

//вывод

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

{

  for (int j = 0; j < m; j++)

  {

  std: : cout < < arr[i][j] < < " ";

  }

  std: : cout < < std: : endl;

}

std: : cout < < std: : endl < < std: : endl;

for (int i = 0; i < n-1; i++)

{

  if (sum_arr(arr[i], m) > sum_arr(arr[i + 1], m))

  swap_arr(arr[i], arr[i + 1], m);

}

//вывод

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

{

  for (int j = 0; j < m; j++)

  {

  std: : cout < < arr[i][j] < < " ";

  }

  std: : cout < < std: : endl;

}

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

  delete[] arr[i];

delete[] arr;

std: : system("pause > > void");  

return 0;

}

Shishkinaanasta1997

#include < iostream>

#include < vector>

#include < random>

int rand_num(int min, int max)

{

std: : random_device rd;    

std: : mt19937 rng(;    

std: : uniform_int_distribution< int> uni(min, max);

auto random_integer = uni(rng);

return random_integer;

}

int sum_vec(std: : vector< int> v)

{

int sum = 0;

for (auto & num : v)

{

  sum += num;

}

return sum;

}

void print_vec_2d(const std: : vector< std: : vector< int> > & v)

{

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

{

  for (int j = 0; j < v[i].size(); ++j)

  {

  std: : cout < < v[i][j] < < " ";

  }

  std: : cout < < std: : endl;

}

}

void sort_vec_2d(std: : vector< std: : vector< int> > & v)

{

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

{

  for (int j = i + 1; j < v.size(); ++j)

  {

  if (sum_vec(v[i]) > sum_vec(v[j]))

  {

    std: : swap(v[i], v[j]);

  }

  }

}

}

void rand_vec_2d(std: : vector< std: : vector< int> > & v, int min, int max)

{

v.resize(rand_num(min, max));

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

{

  for (int j = 0; j < rand_num(min, max); ++j)

  {

  v[i].push_back(rand_num(min, max));

  }

}

}

int main()

{

setlocale(lc_all, "russian");

std: : vector< std: : vector< int> > nums;

rand_vec_2d(nums, 1, 10);

std: : cout < < "исходынй вектор: " < < std: : endl;

print_vec_2d(nums);

sort_vec_2d(nums);

std: : cout < < "полученный вектор: " < < std: : endl;

print_vec_2d(nums);

//system("pause");

}

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

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

Колония клеток представляет собой квадратную матрицу порядка n (n < 500 в колонию проникает m (m < 11) вирусов, которые поражают клетки с координатами (x1, y1), … (xm, ym). за одну единицу времени вирус проникает в клетки, соседние с зараженными (соседними считаются клетки, имеющие общую сторону). требуется написать программу, которая определит время заражения всей колонии.
Ваше имя (никнейм)*
Email*
Комментарий*

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

maglevanyycpt
MN-Natusik80
AndreiFaikov1943
maksimforyou20
symkifm
Fedorov1283
Александрович833
Zhanna417
Viktorovna_Yurevna
picsell
mishagoride885
zimbickij19
videofanovitch
Shurshilina850
ibird777