Задача:
Неориентированный граф задан списком ребер.
Найдите степени всех вершин графа.
Технические условия:
Входные данные:
Входной файл содержит числа [latex]n[/latex] [latex] (1 \leq n \leq 100) [/latex] — число вершин в графе и
[latex]m[/latex] [latex](1 \leq m \leq \frac{n(n-1)}{2})[/latex] — число ребер. Затем следует [latex]m[/latex] пар чисел — ребра графа.Выходные данные:
Выведите в выходной файл [latex]n[/latex] чисел — степени вершин графа.
Результат на C++
Результат на Java
Код на C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; int main() { int n = 0 , m = 0, i, buf; cin >> n >> m; int *a = new int [n]; for(i = 0; i < n; a[i] = 0, ++i); for(i = 0 , buf; i < 2*m ; cin >> buf, ++a[buf - 1], ++i); for(i = 0; i < n; ++i){ cout << a[i] << endl; } return 0; } |
Код на Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.io.*; import java.util.*; public class Main { public static void main (String[] args) { Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); int n, m, i, buf; n = in.nextInt(); m = in.nextInt(); int[] a = new int [n]; for(i = 0; i < n; a[i] = 0, ++i); for(i = 0; i < 2*m ;buf = in.nextInt(), ++a[buf - 1], ++i); for(i = 0; i < n; ++i){ out.println(a[i]); } out.flush(); } } |
Описание:
Мне дан неориентированный граф, значит каждое упоминание вершины в списке ребер увеличивает её степень на единицу. Заводим массив (размер массива равен числу вершин) и при каждом упоминании вершины увеличиваем её ячейку в массиве на единицу. Выводим результат.
Совершенно верно
Засчитано, 5 баллов.