Задача: Полуполный граф
Решение
ссылка на ideone, засчитанное решение на e-olymp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include<iostream> using namespace std; bool used[101][101]; int main(){ int n, m; cin >> n >> m; for(int i = 0; i < m; i++){ int a,b; cin >> a >> b; used[a][b] = used[b][a] = 1; } for(int i = 1; i <= n; i++){ for(int j = i+1; j <= n; j++){ if(used[i][j] == false){ cout << "NO\n"; return 0; } } } cout << "YES\n"; return 0; } |
Решение на Java
ссылка на ideone, засчитанное решение на e-olymp
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 java.util.*; import java.lang.*; import java.io.*; class Main { static boolean[][] used = new boolean[101][101]; static Scanner sc = new Scanner(System.in); public static void main (String[] args) throws java.lang.Exception { int n, m; n = sc.nextInt(); m = sc.nextInt(); for(int i = 0; i < m; i++){ int a, b; a = sc.nextInt(); b = sc.nextInt(); used[a][b] = used[b][a] = true; } for(int i = 1; i <= n; i++){ for(int j = i+1; j <= n; j++){ if(used[i][j] == false){ System.out.println("NO"); return; } } } System.out.println("YES"); } } |
Идея решения
Считаем что граф неорентированный и проверяем, не полный ли наш граф. Если полный — выводим «YES», иначе «NO».
Зачтено, конечно.
Но Вас ничего не смущает в такой проверке if(used[i][j] == false)?
Для красивой лесенки
Java версия засчитана, 10 баллов.
А вместо if(used[i][j] == false) лучше if(!used[i][j]).