# [Tutor] Fwd: Graph question was: Re: (no subject)

Alan Gauld learn2program at gmail.com
Mon Mar 15 19:56:15 EDT 2021

```Forwarding to the group....

-------- Forwarded Message --------

I have written it in a more readable format.
In this problem, you need to create a program for managing Graphs. The
input to the program will be as described next: The first line will
contain a positive integer NN. NNdenotes the number of nodes in the
graph. Nodes themselves are numbered from 0 to N−1N−1.
The second line will contain a non-negative integer MM(M≥0M≥0). This
will be the number of edges in the graph (However, some of these could
be invalid/duplicate). The next MMlines each will contain a pair of
integers i,ji,jrepresenting a directed edge i→ji→j. Self edges (i→ii→i)
are allowed. However, multi-edges (two or more instances of i→ji→j) have
to be stored only once. Last line will contain an integer kk. The output
of the program is: If kkrepresents a valid node, print all the nodes
sssuch that s→ks→kis a (directed) edge in the graph. The nodes have to
be in sorted order, separated by COMMA (no whitespace). If kkdoes not
represent a valid node, print "ERROR: Invalid Node." EXAMPLES
___________________________________ INPUT: 3 4 0,1 1,2 2,0 0,2 2 OUTPUT:
0,1 _____________________________ INPUT: 3 4 0,1 0,2 2,0 0,2 2 OUTPUT: 0
_____________________________ INPUT: 1 0 0 OUTPUT: (Note empty output)
_____________________________ NOTE: Remember that Self edges (i→ii→i)
are allowed. Multi-edges (two or more instances of i→ji→j) have to be
counted only once.

On Sun, Mar 14, 2021 at 8:28 PM Alan Gauld <learn2program at gmail.com
<mailto:learn2program at gmail.com>> wrote:

Please supply a relevant subject line, it makes tracking the discussion
much easier.

On 14/03/2021 12:39, ੧ wrote:
> Dear sir, I have not studies graph-related things in python.

Have you studied graphs in math?
Python is pretty much irrelevant since it does not directly
deal in graphs. You need to do that yourself.

ie. can you solve the problem below without Python?
If not then that is where you must start.
First understand the problem.

> The first line
> will contain a positive integer NN. NN denotes the number of nodes
in the
> graph. Nodes themselves are numbered from 0 to N−1N−1.

OK, This has lost me already. The number of nodes should
surely be N? Not NN? How are the nodes in a graph numbered
Can you provide an example? The input samples below do
not appear to match the description.

Can you repost the question with clearer formatting
and better examples?

The more you can help us the more we can help you.

> The second line will
> contain a non-negative integer MM (M≥0M≥0). This will be the number of
> edges in the graph (However, some of these could be
invalid/duplicate). The
> next MM lines each will contain a pair of integers i,ji,j
representing a
> directed edge i→ji→j. Self edges (i→ii→i) are allowed. However,
multi-edges
> (two or more instances of i→ji→j) have to be stored only once.
Last line
> will contain an integer kk. The output of the program is: If kk
represents
> a valid node, print all the nodes ss such that s→ks→k is a
(directed) edge
> in the graph. The nodes have to be in sorted order, separated by
COMMA (no
> whitespace). If kk does not represent a valid node, print "ERROR:
Invalid
> Node." EXAMPLES ___________________________________ INPUT: 3 4 0,1
1,2 2,0
> 0,2 2 OUTPUT: 0,1 _____________________________ INPUT: 3 4 0,1 0,2
2,0 0,2
> 2 OUTPUT: 0 _____________________________ INPUT: 1 0 0 OUTPUT:
(Note empty
> output) _____________________________ NOTE: Remember that Self
edges (i→ii→i)
> are allowed. Multi-edges (two or more instances of i→ji→j) have to be
> counted only once.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/ <http://www.alan-g.me.uk/>
http://www.amazon.com/author/alan_gauld
<http://www.amazon.com/author/alan_gauld>
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
<http://www.flickr.com/photos/alangauldphotos>

--
TaranSingh
```