 
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.adonaimedrado.pro.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Solu%C3%A7%C3%A3o%3A_Problema_do_grafo_conexo_%28Thiago_Freire%29</id>
		<title>Solução: Problema do grafo conexo (Thiago Freire) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.adonaimedrado.pro.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Solu%C3%A7%C3%A3o%3A_Problema_do_grafo_conexo_%28Thiago_Freire%29"/>
		<link rel="alternate" type="text/html" href="https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Thiago_Freire)&amp;action=history"/>
		<updated>2026-05-27T05:40:21Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Thiago_Freire)&amp;diff=2961&amp;oldid=prev</id>
		<title>189.105.130.222: New page: &lt;code lang=&quot;java&quot;&gt;  import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Hash...</title>
		<link rel="alternate" type="text/html" href="https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Thiago_Freire)&amp;diff=2961&amp;oldid=prev"/>
				<updated>2009-05-27T05:37:55Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;code lang=&amp;quot;java&amp;quot;&amp;gt;  import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Hash...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;code lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
&lt;br /&gt;
public class Graph {&lt;br /&gt;
&lt;br /&gt;
	private HashMap&amp;lt;Integer, ArrayList&amp;lt;Integer&amp;gt;&amp;gt; adj = new HashMap&amp;lt;Integer, ArrayList&amp;lt;Integer&amp;gt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
	private void addVertex(int v) {&lt;br /&gt;
		adj.put(new Integer(v), new ArrayList&amp;lt;Integer&amp;gt;());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	private void removeVertex(int v) {&lt;br /&gt;
		adj.remove(v);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	private Integer getFirstVertex() {&lt;br /&gt;
		return adj.keySet().iterator().next();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private void addEdge(int u, int v) {&lt;br /&gt;
		if (!adj.containsKey(u)) &lt;br /&gt;
			addVertex(u);&lt;br /&gt;
		if (!adj.containsKey(v)) &lt;br /&gt;
			addVertex(v);&lt;br /&gt;
		adj.get(u).add(v);&lt;br /&gt;
		adj.get(v).add(u);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	private boolean hasNeighbors(int v) {&lt;br /&gt;
		return !adj.get(v).isEmpty();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	private int getFirstNeighbor(int v) {&lt;br /&gt;
		return adj.get(v).get(0);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	private void removeFirstNeighbor(int v) {&lt;br /&gt;
		adj.get(v).remove(0);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private int isConnected() {&lt;br /&gt;
		HashSet&amp;lt;Integer&amp;gt; possibleKeys = new HashSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
		HashSet&amp;lt;Integer&amp;gt; keys = new HashSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
		int v;&lt;br /&gt;
		&lt;br /&gt;
		possibleKeys.add(getFirstVertex());&lt;br /&gt;
		while (!possibleKeys.isEmpty()) {&lt;br /&gt;
			v = possibleKeys.iterator().next();&lt;br /&gt;
			keys.add(v);&lt;br /&gt;
			while (hasNeighbors(v)) {&lt;br /&gt;
				if (!keys.contains(getFirstNeighbor(v)))&lt;br /&gt;
					possibleKeys.add(getFirstNeighbor(v));&lt;br /&gt;
				removeFirstNeighbor(v);&lt;br /&gt;
			}&lt;br /&gt;
			removeVertex(v);&lt;br /&gt;
			possibleKeys.remove(v);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return adj.isEmpty() ? 1 : 0;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void main(String[] args) throws IOException {&lt;br /&gt;
		Graph g = new Graph();&lt;br /&gt;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));&lt;br /&gt;
		String[] vertices;&lt;br /&gt;
		&lt;br /&gt;
		int n = Integer.parseInt(br.readLine());&lt;br /&gt;
		for (int i = 0; i &amp;lt; n; i++) {&lt;br /&gt;
			vertices = br.readLine().split(&amp;quot; &amp;quot;);&lt;br /&gt;
			g.addEdge(Integer.parseInt(vertices[0]), Integer.parseInt(vertices[1]));&lt;br /&gt;
		}&lt;br /&gt;
		System.out.println(g.isConnected());&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>189.105.130.222</name></author>	</entry>

	</feed>