Electronic Circuit
Time limit1sMemory limit1024 MB
Given an undirected multigraph, decide whether two end nodes can be chosen so that the circuit is built only by series and parallel composition.
- Level
Hard8 of 10
- Topics
- Graph, Hash map, Implementation
- Solved
- No attempts yet
Problem
Joon is taking General Physics II and is now studying electronic circuits. An electronic circuit consists of several nodes and undirected wires, each connecting two distinct nodes. A circuit has two distinct end nodes: a source node and a sink node, where a voltage is applied. (Usually a battery wire connects the two nodes, but we neglect it.) Each wire has a resistance, and Joon should know how to calculate the composite resistance of a circuit.
Joon dislikes complicated things, so he only cares about circuits that can be made by series and parallel compositions, since their composite resistance is easy to calculate. He calls them nice circuits. Formally, a nice circuit is defined as follows.
- A circuit with a single wire connecting two end nodes is nice.
- A circuit obtained by merging the sink node of a nice circuit and the source node of a nice circuit into a single node is nice. The source node and sink node of the result are the source node of and the sink node of , respectively.
- A circuit obtained by merging the two source nodes of nice circuits and into a single node, and merging the two sink nodes of and into a single node, is nice. The two end nodes of the result are the respective merged end nodes.

Figure: Illustration of the definition of nice circuit.
He made a circuit with his wires to calculate the composite resistance, but his friend Pringles screwed up the circuit, so now Joon does not know what the end nodes are. To make things worse, he is not sure whether the circuit is nice.
Joon will give you the circuit. Determine whether the circuit can be nice by choosing two end nodes appropriately. Note that there may be multiple wires connecting two nodes.
Input
The first line contains two integers and (, ), where is the number of nodes and is the number of wires. All nodes are numbered from to .
In the following lines, each line contains two integers and (, ), representing a wire connecting and . Every node is attached to at least one wire.
Output
Print Yes if the given circuit can be nice, or No otherwise.