Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.10.2021
Сообщений: 15

Изоляция

26.01.2024, 19:10. Показов 806. Ответов 5
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
На острове расположены несколько государств, изолированных друг от друга. У программиста Васи есть данные обо всех дорогах острова, заданные в виде весовой матрицы соответствующего графа, узлы которого – города, а веса рёбер – расстояния между ними. Напишите программу, которая определяет, сколько государств, состоящих из единственного города, находится на острове.

Входные данные
В первой строке вводится количество городов на карте N ( 1 ≤ N ≤ 1000 ). В следующих N строках записано по N чисел, разделённых пробелами – элементы весовой матрицы графа, который описывает схему дорог.

Выходные данные
Программа должна вывести номера всех государств, состоящих из одного города, в порядке возрастания. Нумерация начинается с единицы. Если таких городов нет, нужно вывести число 0.

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

5
0 1 2 0 0
1 0 3 0 0
2 3 0 0 0
0 0 0 0 0
0 0 0 0 0
выходные данные
4 5

Сделал так, но задача не проходит больше половины тестов
C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
using namespace std;
 
int main() {
    int N;
    cin >> N;
 
    // Создаем и заполняем матрицу смежности
    int graph[N][N];
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            cin >> graph[i][j];
        }
    }
 
    // Создаем массив, в котором будем хранить номера государств из одного города
    int singleCityStates[N];
    int singleCityStatesCount = 0;
 
    // Проверяем каждый город
    for (int i = 0; i < N; i++) {
        bool isSingleCityState = true;
 
        // Проверяем, есть ли у города соседи
        for (int j = 0; j < N; j++) {
            if (graph[i][j] != 0) {
                isSingleCityState = false;
                break;
            }
        }
 
        // Если у города нет соседей, добавляем его номер в массив
        if (isSingleCityState) {
            singleCityStates[singleCityStatesCount] = i + 1;
            singleCityStatesCount++;
        }
    }
 
    // Выводим номера государств из одного города
    if (singleCityStatesCount == 0) {
        cout << "0";
    } else {
        for (int i = 0; i < singleCityStatesCount; i++) {
            cout << singleCityStates[i] << " ";
        }
    }
 
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2024, 19:10
Ответы с готовыми решениями:

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

Изоляция в транзакции
Добрый день. Вопрос простой. Есть некая последовательность: 1. Запрос на получение количество строк в одной из таблиц 2. Insert в...

Изоляция MS Agent 2.0
Написал тестовую программу: Option Explicit Private Declare Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As Long) Dim CharPath As...

5
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12932 / 6800 / 1820
Регистрация: 18.10.2014
Сообщений: 17,211
26.01.2024, 19:22
Цитата Сообщение от Exact Посмотреть сообщение
но задача не проходит больше половины тестов
Так а что такое "не проходит"? По какой именно причине не проходит?

Цитата Сообщение от Exact Посмотреть сообщение
C++
1
2
3
    int N;
    ...
    int graph[N][N];
В С++ такого не разрешается. А даже если бы разрешалось бы, то поместилось ли бы это в локальную память при N = 1000?

Цитата Сообщение от Exact Посмотреть сообщение
// Если у города нет соседей, добавляем его номер в массив
Зачем "в массив"?
1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
28.01.2024, 01:43
Задача вроде достаточно простая (и да, массивы совсем не нужны):
C++
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
32
  unsigned N, i, j, dist, zeroes_count;
 
  // тут Вводим значение N
 
  bool isSingleCityExists = 0;
 
  for (i = 0; i < N; i++)
  {
    // количество нулей zeroes_count
    zeroes_count = 0;
 
    for (j = 0; j < N; j++)
    {
      // тут Вводим значение dist - элемент "матрицы"
 
      if (dist == 0)
        zeroes_count++;
    }
 
    if (zeroes_count == N)
    {
      if (isSingleCityExists == 0)  // < - эту строку можно убрать
        isSingleCityExists = 1;
 
      // здесь ВЫводим значение i + 1
    }
  }
 
  if (isSingleCityExists == 0)  // если условие выполняется
    // то здесь ВЫводим значение 0
 
  // конец программы
1
27 / 24 / 4
Регистрация: 20.11.2023
Сообщений: 129
28.01.2024, 07:37
Exact, как точно подметил TheCalligrapher, код полон VLA (Variable Length Arrays), которые есть в языке Си, но их нет в C++,
может быть, ваш компилятор поддерживает их, как расширение языка, но на стороне тестирующей системы код может просто не скомпилироваться.
Не говоря уже о том, что программу с ними можно взломать в два счета через переполнение стека.

Добавлено через 5 минут
gunslinger, душню, но зачем неявно приводить bool к int?
Такой код тоже может не скомпилироваться на стороне тестирующей системы .
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
28.01.2024, 14:43
pechka_ne_sed,
Syntax:
bool <identifier>;

Description
Use bool and the literals false and true to perform Boolean logic tests.
The bool keyword represents a type that can take only the value false or true. The keywords false and true are Boolean literals with predefined values. false is numericallly zero and true is numerically one. These Boolean literals are rvalues; you cannot make an assignment to them.
You can convert an rvalue that is of type bool to an rvalue that is int type. The numerical conversion sets false to zero and true becomes one.
You can convert arithmetic, enumeration, pointer, or pointer to member rvalue types to an rvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to false. Any other value is converted to true.
В любом случае ничто не мешает ТС-у изменить тип bool на int или unsigned.
Или использовать true и false вместо 1 и 0 (для типа bool).
0
27 / 24 / 4
Регистрация: 20.11.2023
Сообщений: 129
28.01.2024, 14:54
gunslinger, да, все так .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2024, 14:54
Помогаю со студенческими работами здесь

Изоляция нейроволн
Здравствуйте. Что может заглушить волны 4 ГЕРЦ - вопрос об альфа бэта гамма тетта волнах - которые излучает человеческий мозг. Изолятор...

Изоляция программы
итак, есть программа(.exe), необходимо её запустить, да только так, чтобы при её попытке доступа в интернет, обращения к консоли, изменения...

Изоляция php в lampp
Доброго времени суток, форумчане... Установил LAMPP. Настроил VirtualHost, все работает, php код выполняется. Нормально ли то, что из...

Изоляция стала липкой
Пользовался стандартными наушниками от айфона какое-то время, потом купил беспроводные, а родные смотал и отправил в коробку от телефона....

Изоляция жесткого диска
дело стоит вот в чем. В кампе стоит жесткий диск на котором очень много крайне важной информации. Так вот каким образом изолировать жестак...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru