| Task: | Connect cities |
| Sender: | banghalq |
| Submission time: | 2025-09-04 10:00:10 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | RUNTIME ERROR |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.18 s | details |
| #2 | ACCEPTED | 0.18 s | details |
| #3 | ACCEPTED | 0.13 s | details |
| #4 | ACCEPTED | 0.18 s | details |
| #5 | ACCEPTED | 0.14 s | details |
| #6 | RUNTIME ERROR | 0.60 s | details |
| #7 | RUNTIME ERROR | 0.60 s | details |
| #8 | RUNTIME ERROR | 0.60 s | details |
| #9 | RUNTIME ERROR | 0.60 s | details |
| #10 | RUNTIME ERROR | 0.60 s | details |
| #11 | RUNTIME ERROR | 0.60 s | details |
| #12 | ACCEPTED | 0.18 s | details |
Code
import java.util.*;
public class ConnectCities {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int[][] graph = new int[n][n];
for (int i = 0; i < m; i++) {
int a = scanner.nextInt();
int b = scanner.nextInt();
graph[a - 1][b - 1] = 1;
graph[b - 1][a - 1] = 1;
}
int nbRoads = 0;
List<int[]> citiesToConnect = new ArrayList<>();
boolean[] visited = new boolean[n];
Deque<Integer> citiesToVisit = new ArrayDeque<>();
citiesToVisit.add(0);
while (containsFalse(visited)) {
if (!citiesToVisit.isEmpty()) {
int actualNode = citiesToVisit.poll();
if (visited[actualNode]) {
continue;
}
visited[actualNode] = true;
for (int ind = 0; ind < graph[actualNode].length; ind++) {
if (graph[actualNode][ind] == 1 && !visited[ind]) {
citiesToVisit.add(ind);
}
}
} else {
nbRoads++;
int cityNoConnect = indexOfFalse(visited);
int cityConnected = indexOfTrue(visited);
citiesToConnect.add(new int[]{cityNoConnect + 1, cityConnected + 1});
graph[cityNoConnect][cityConnected] = 1;
graph[cityConnected][cityNoConnect] = 1;
citiesToVisit.add(cityNoConnect);
}
}
System.out.println(nbRoads);
for (int[] elt : citiesToConnect) {
System.out.println(elt[0] + " " + elt[1]);
}
}
private static boolean containsFalse(boolean[] array) {
for (boolean value : array) {
if (!value) {
return true;
}
}
return false;
}
private static int indexOfFalse(boolean[] array) {
for (int i = 0; i < array.length; i++) {
if (!array[i]) {
return i;
}
}
return -1; // Should not reach here if called correctly
}
private static int indexOfTrue(boolean[] array) {
for (int i = 0; i < array.length; i++) {
if (array[i]) {
return i;
}
}
return -1; // Should not reach here if called correctly
}
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 10 2 5 5 6 1 4 6 8 ... |
| correct output |
|---|
| 2 1 2 2 7 |
| user output |
|---|
| 2 2 1 7 1 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 10 3 9 6 8 9 10 7 8 ... |
| correct output |
|---|
| 2 1 4 4 5 |
| user output |
|---|
| 2 4 1 5 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 10 7 9 1 7 1 3 3 4 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 4 8 5 9 4 9 2 7 ... |
| correct output |
|---|
| 1 1 3 |
| user output |
|---|
| 1 3 1 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 10 4 9 2 4 7 10 1 8 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 6
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 7233 22146 94937 96203 6133 10731 98737 99193 ... |
| correct output |
|---|
| 4785 1 2 2 3 3 4 4 5 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 7
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 92950 93575 24401 88897 41796 99364 47106 50330 ... |
| correct output |
|---|
| 4868 1 2 2 7 7 9 9 15 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 8
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 15637 76736 79169 98809 4382 86557 73383 77029 ... |
| correct output |
|---|
| 4683 1 9 9 20 20 27 27 28 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 9
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 47932 66981 86401 99942 4353 27841 60492 67345 ... |
| correct output |
|---|
| 4807 1 6 6 7 7 11 11 12 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 10
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 6554 44548 76413 98555 5447 59589 70166 74434 ... |
| correct output |
|---|
| 4786 1 2 2 18 18 21 21 27 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 11
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 1 1 2 |
| correct output |
|---|
| 99998 1 3 3 4 4 5 5 6 ... |
| user output |
|---|
| (empty) |
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at ConnectCities.m...
Test 12
Verdict: ACCEPTED
| input |
|---|
| 10 9 2 5 5 6 1 4 6 8 ... |
| correct output |
|---|
| 2 1 2 2 7 |
| user output |
|---|
| 2 2 1 7 1 |
