PFDEP - Project File Dependencies

Project managers, such as the UNIX utility make, are used to maintain large software projects made up from many components. Users write a project file specifying which components (called tasks) depend on others and the project manager can automatically update the components in the correct order.

Problem

Write a program that reads a project file and outputs the order in which the tasks should be performed.

Input

For simplicity we represent each task by an integer number from $1, 2, \ldots, N$ (where $N$ is the total number of tasks). The first line of input specifies the number $N$ of tasks and the number $M$ of rules, such that $N \le 100$, $M \le 100$.

The rest of the input consists of $M$ rules, one in each line, specifying dependencies using the following syntax:

$T_0$ $k$ $T_1$ $T_2$ $\ldots$ $T_k$

This rule means that task number $T_0$ depends on $k$ tasks $T_1, T_2, \ldots, T_k$ (we say that task $T_0$ is the target and $T_1, \ldots, T_k$ are dependents).

Note that tasks numbers are separated by single spaces and that rules end with a newline. Rules can appear in any order, but each task can appear as target only once.

Your program can assume that there are no circular dependencies in the rules, i.e. no task depends directly or indirectly on itself.

Output

The output should be a single line with the permutation of the tasks $1 \ldots N$ to be performed, ordered by dependencies (i.e. no task should appear before others that it depends on).

To avoid ambiguity in the output, tasks that do not depend on each other should be ordered by their number (lower numbers first).

Example

Input:
5 4
3 2 1 5
2 2 5 3
4 1 3
5 1 1

Output:
1 5 3 2 4

Added by:overwise
Date:2007-10-04
Time limit:0.405s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:ACM ICPC -- SWERC 2001

hide comments
2015-01-20 21:36:56 Rahul Jain
@Dewan, My code works for your testcase and all others that I've tried but still, i am getting WA.. Guys please help
2014-12-30 10:40:33 Sudarshan K
O(|v|^2) and O(|V|) both take same time. Interesting.
2014-11-05 16:56:00 vishal
AC in first go.
thanks dewan for test case.
use 2 queues.. :)
2014-10-06 19:41:30 Ryan Wechter
Anyone have other tests to break the code?
2014-06-27 14:52:33 785227
@Dewan, Your test case saved my day :)
Easy though
2014-04-11 21:59:27 innovolt
simple

Last edit: 2014-05-21 11:52:48
2014-04-11 21:56:38 innovolt
after so many attempt finally AC simple1
2014-04-04 11:47:15 adijimmy
Please help me getting SIGABRT runtime error :'(
2014-04-02 03:13:33 Quỳnh Nga Nguyễn
Original link to the problem (since the images are not displayed): http://swerc.up.pt/2001/2001/H.html
--ans(Francky)--> Thanks, now images are displayed.

Last edit: 2014-04-02 09:28:25
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.