Сколько каких дорог? - Pascal
Формулировка задачи:
Здравствуйте,помогите пожалуйста написать код.В городе Новые Васюки на некоторых дорогах введено одностороннее движение. Схема дорог задана в виде весовой матрицы графа, числа обозначают длины дорог. Если длины дорог из пункта А в пункт Б разные, это означает, что есть две разные дороги. Найдите отдельно количество дорог в Новых Васюках с односторонним и двусторонним движением.
Входные данные
В первой строке вводится количество перекрёстков в Новых Васюках N ( 1 ≤ N ≤ 1000 ). В следующих N строках записано по N чисел, разделённых пробелами – длины дорог между каждой парой перекрёстков. Ноль означает, что дороги между этими перекрёстками нет.
Выходные данные
Программа должна вывести два числа в одной строке, разделив их пробелом: сначала количество дорог с односторонним движением, потом – количество дорог с двусторонним движением.
Примеры
входные данные
5
0 2 3 4 0
2 0 5 0 7
3 6 0 8 0
0 0 0 0 0
0 7 0 9 0
выходные данные
5 3
Решение задачи: «Сколько каких дорог?»
textual
Листинг программы
var n,i,j,o,d:integer; a:array[1..1000,1..1000] of integer; begin readln(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); for i:=1 to n do for j:=1 to n do if a[i,j]>0 then if a[i,j]=a[j,i] then d:=d+1 else o:=o+1; writeln(o,' ',d div 2) end.
Объяснение кода листинга программы
- Объявление переменных:
n
- целочисленная переменная, обозначает размерность массиваi
- целочисленная переменная, используется в цикле forj
- целочисленная переменная, используется в цикле foro
- целочисленная переменная, счетчик отрицательных значений в массивеd
- целочисленная переменная, половина счетчика положительных значений в массивеa
- двумерный массив 1000x1000 с целочисленными значениями
- Считывание значения
n
с клавиатуры - Заполнение массива
a
значениями:- С помощью двух вложенных циклов
for
происходит считывание значений для каждой ячейки массиваa[i,j]
из ввода
- С помощью двух вложенных циклов
- Подсчет количества дорог:
- Снова используются два вложенных цикла
for
для прохождения по каждой ячейке массиваa[i,j]
- Если значение ячейки больше нуля, то проверяется, равно ли оно значению в ячейке
a[j,i]
- Если они равны, увеличивается счетчик
d
на единицу, иначе увеличивается счетчикo
на единицу - После этого выводится результат в виде
o
иd div 2
- Снова используются два вложенных цикла
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д