Подсчет количества ребер ориентированного графа - C#

Узнай цену своей работы

Формулировка задачи:

Задание: Ориентированный граф задан матрицей смежности. Найдите количество ребер в графе. Входные данные На вход программы поступает число n ( 1$ le$n$ le$100) – количество вершин в графе, а затем n строк по n чисел, каждое из которых равно 0 или 1, – его матрица смежности. Выходные данные Выведите одно число – количество ребер заданного графа. Примеры входные данные 5 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 выходные данные 3 вот сам код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            List<int[]> a = new List<int[]>();
 
            int output = 0;
            List<String> vertex = new List<String>();
            if (n <= 100 && n >= 1)
            {
                for (int i = 0; i < n; i++)
                {
                    string[] strings = Console.ReadLine().Split();
                    int[] row = new int[n];
                    for (int j = 0; j < strings.Length; j++)
                    {
                        int value = Int32.Parse(strings[j]);
                        row[j] = value;
                        if (value == 1)
                        {
                            String current_v = (i + 1).ToString() + (j + 1).ToString();
                            String reverse_current_v = new string(current_v.Reverse().ToArray());
                            if (vertex.Count == 0)
                            {
                                output++;
                                vertex.Add(current_v);
                            }
                            else
                            {
                                bool into_vertex = false;
                                foreach (String v in vertex)
                                {
                                    if (v.Equals(current_v) || v.Equals(reverse_current_v))
                                    {
                                        into_vertex = true;
                                    }
                                }
 
                                if (!into_vertex)
                                {
                                    output++;
                                    vertex.Add(current_v);
                                }
                            }
                        }
                    }
                    a.Add(row);
                }
 
                Console.WriteLine("");
                Console.WriteLine(output);
            }
 
        }
    }
}
Мне пишут,что это решение частичное,почему? я не понимаю.Помогите пожалуйста

Решение задачи: «Подсчет количества ребер ориентированного графа»

textual
Листинг программы
using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        var stream = Console.OpenStandardInput();
        var input = new StreamReader(stream);
 
        int n = int.Parse(input.ReadLine());
        int count = 0;
        for (int i = 0; i < n; i++)
        {
            var line = input.ReadLine();
            for (int j = 0; j < n; j++)
                count += line[2 * j] - '0';
        }
 
        Console.WriteLine(count);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы