Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Dark_Fail
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 94
1

Подсчитать количество пар разных элементов

10.07.2016, 18:21. Просмотров 469. Ответов 6
Метки нет (Все метки)

В Банановой республике очень много холмов, соединенных мостами. На химическом заводе произошла авария, в результате чего испарилось экспериментальное удобрение "зован". На следующий день выпал цветной дождь, причем он прошел только над холмами. В некоторых местах падали красные капли, в некоторых – синие, а в остальных – зеленые, в результате чего холмы стали соответствующего цвета. Президенту Банановой республики это понравилось, но ему захотелось покрасить мосты между вершинами холмов так, чтобы мосты были покрашены в цвет холмов, которые они соединяют. К сожалению, если холмы разного цвета, то покрасить мост таким образом не удастся. Посчитайте количество таких "плохих" мостов.

Входные данные
В первой строке входных данных содержится число N (0 < N ≤ 100) – количество холмов. Далее идет матрица смежности, описывающая наличие мостов между холмами (1 – мост есть, 0 – нет). После матрицы смежности идёт пустая строка, и в последней строке записано N чисел, обозначающих цвет холмов: 1 – красный; 2 – синий; 3 – зеленый.

Выходные данные
Выведите одно число – количество "плохих" мостов.

Примеры
входные данные
7
0 1 0 0 0 1 1
1 0 1 0 0 0 0
0 1 0 0 1 1 0
0 0 0 0 0 0 0
0 0 1 0 0 1 0
1 0 1 0 1 0 0
1 0 0 0 0 0 0

1 1 1 1 1 3 3
выходные данные
4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2016, 18:21
Ответы с готовыми решениями:

Подсчитать количество элементов списка с использование for
Задача такова: Нужно вводить в список новые элементы и если некоторые елементы...

Подсчитать количество отрицательных элементов в матрице
Доброго времени суток!!! Подскажите как сделать в ПИТОНЕ: В матрице 7х8,...

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

Найти количество одинаковых пар в списке
Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу....

Найти количество совпадающих пар чисел в списке
Задание звучит так: Дан список чисел. Посчитайте, сколько в нем пар...

6
shsv
405 / 272 / 189
Регистрация: 20.05.2016
Сообщений: 579
10.07.2016, 20:33 2
Вроде так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import sys
import io
 
strin = """7
0 1 0 0 0 1 1
1 0 1 0 0 0 0
0 1 0 0 1 1 0
0 0 0 0 0 0 0
0 0 1 0 0 1 0
1 0 1 0 1 0 0
1 0 0 0 0 0 0
 
1 1 1 1 1 3 3"""
 
sys.stdin = io.StringIO(strin)
 
n = int(input())
adj = [input().split() for i in range(n)]
input()
crs = input().split()
 
print(sum((c == '1' and crs[ir] != crs[ic]) for ir, r in enumerate(adj) 
                                            for ic, c in enumerate(r[ir+1:], start=ir+1)))
 
# развёрнуто
# count = 0
# for ir, r in enumerate(adj):
#     for ic, c in enumerate(r[ir+1:], start=ir+1):
#         if c == '1' and crs[ir] != crs[ic]:
#             count += 1
# print(count)
0
Dark_Fail
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 94
10.07.2016, 22:08  [ТС] 3
можно как то через массивы типо задавать графы. начиная как то так
Python
1
2
3
4
n=int(input())
m=[0]*n
for i in range(n):
    m[i]=list(map(int, input().split()))
а то для меня как то сложно
0
shsv
405 / 272 / 189
Регистрация: 20.05.2016
Сообщений: 579
10.07.2016, 23:33 4
Если это вопрос, да, разумеется можно, если вам так понятнее (в конце концов задача ваша, и каким будет код решать вам, лишь бы работал)
0
Dark_Fail
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 94
11.07.2016, 12:57  [ТС] 5
ну можете показать, пожалуйста, чтоб я понял с:

Добавлено через 11 часов 3 минуты
ну как то так, а дальше как
Python
1
2
3
4
5
6
7
8
9
10
11
12
n=int(input())
m=[0]*n
for i in range(n):
    m[i]=list(map(int, input().split()))
a=1
b=2
c=3
input()
a=list(map(int, input().split()))
for i in range(n):
    for j in range(n):
        if
0
shsv
405 / 272 / 189
Регистрация: 20.05.2016
Сообщений: 579
11.07.2016, 14:11 6
Dark_Fail,
Python
1
2
3
4
5
6
7
8
9
10
11
12
n=int(input())
m=[0]*n
for i in range(n):
    m[i]=list(map(int, input().split()))
count = 0
input()
a=list(map(int, input().split()))
for i in range(n):
    for j in range(n):
        if m[i][j] == 1 and a[i] != a[j]:
            count += 1
print(count//2)
0
Dark_Fail
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 94
11.07.2016, 14:18  [ТС] 7
умно, спасибо
0
11.07.2016, 14:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2016, 14:18

Как посчитать число пар одинаковых элементов в списке?
Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу....

Найти, сколько в целочисленном массиве пар одинаковых соседних элементов
Дан массив целых чисел. Найти сколько в нем пар одинаковых соседних элементов.

Какое наибольшее количество пар обуви сможет предложить продавец, чтобы покупатель смог одеть их одновременно?
В обувном магазине страны великанов продается обувь разного размера. Известно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru