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

Изоляция

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

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

Входные данные
В первой строке вводится количество городов на карте 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
12875 / 6739 / 1810
Регистрация: 18.10.2014
Сообщений: 17,065
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
3173 / 2197 / 638
Регистрация: 20.07.2013
Сообщений: 5,872
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
3173 / 2197 / 638
Регистрация: 20.07.2013
Сообщений: 5,872
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
Ответ Создать тему
Новые блоги и статьи
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер