CCC '10 S4 - Animal Farm

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 64M

Problem type
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig
Canadian Computing Competition: 2010 Stage 1, Senior #4

You are running a farm which has N (1 \le N \le 100) animals. You went to the store and bought M = N pre-made pens that will house your animals. Pens satisfy the following conditions:

  • pens have between 3 and 8 edges;
  • an edge that is specified by two pens connects the two pens;
  • an edge that is specified only once connects that pen to the outside;
  • there is exactly one animal in each pen and no animals outside the pens, initially.

The animals, however, have a game they like to play called "Escape from the pen." They assign a cost to each edge of the pen, and they determine the minimum cost for all of the animals to meet in the same area by trampling over the edge of various pens. The animals may meet inside a particular pen or outside of all the pens. Also note that once an edge has been trampled, any animal may pass over it without incurring any cost.

You will be given a description of the pens, along with the placement of animals, and you are to figure out what the smallest cost is to move all the animals into the same area.

Input Specification

The first line of input will be the integer M, the number of pens. On the next M lines, there will be a description of each pen, with one description per line. The description is composed of three components, with each component separated by one space, as follows:

  • the first component is an integer e_p (3 \le e_p \le 8), which describes the number of edges for this particular pen p;
  • the second component is a sequence of e_p integers describing the corners of each pen, where each integer is less than or equal to 1\,000;
  • the third component is a sequence of e_p integers describing the cost of each edge, where each integer is less than or equal to 5\,000.

For the corner and edge cost description, the descriptions are given in cyclical order. For example, the following description of a pen

\displaystyle  3\ 1\ 2\ 3\ 7\ 4\ 6

means that there are three corners, and thus, three edges, where the edge (1, 2) has cost 7, the edge (2, 3) has cost 4 and the edge (3, 1) has cost 6. Note: at least 20% of the marks for this question have N \le 10 and no pen will have more than four edges in these cases.

Note: Due to the official test data being weak, additional test data worth 50 marks has been uploaded. Credit goes to aaronhe07 for noticing the issue and to d for helping sanity check and add data.

Output Specification

On one line, output the minimal cost that will allow all the animals to gather in one pen or outside all of the pens.

Sample Input

3 1 2 3 7 4 6
4 1 2 4 5 7 7 2 6
4 4 7 6 5 4 8 9 2
5 3 2 4 7 8 4 7 4 7 7

Output for Sample Input


Explanation of Output for Sample Input

The diagram below explains the input data:

where the circled numbers are the corners, and the numbers in italics are the edge costs. Notice that if the edges (2, 3), (4, 5) and (4, 7) are removed, all the animals can meet in the pen which has five sides.


  • -3
    littlecat  commented on Oct. 13, 2020, 2:10 a.m.

    Are we finding a minimal spanning tree of the dual of the multigraph the pens form? If so, we can use Kruskal's or other algorithms.

  • -3
    noYou  commented on July 29, 2020, 10:52 a.m. edited

    Have they added new test cases? Could've sworn I AC'd this.

    Edit: nvm can't read

  • 13
    tappbros  commented on July 13, 2020, 7:11 p.m.

    Why are we allowing the animals to do this again?

  • -9
    alihu264  commented on April 28, 2020, 5:44 a.m.

    This comment is hidden due to too much negative feedback. Click here to view it.

    • -10
      aaronhe07  commented on July 28, 2020, 8:15 p.m. edited

      This comment is hidden due to too much negative feedback. Click here to view it.

      • 13
        chika  commented on July 28, 2020, 9:27 p.m.

        There are likely two things going on here.

        Firstly, people are much more likely to complain about the input format of S5 than of S4, and in fact the comment pointing out some unexpected issues with the input is upvoted precisely because it's addressing a huge pain point of the problem. The input format of S4 is actually not that unreasonable, expressing pens by their vertices. It might not be desirable once you have a way to solve the problem, but in comparison to S5, it's really not that bad. The input format of S5 could have been avoided by expressing the tree in a more modern format, with labeled vertices connected by edges instead of the provided string representation, and I think many people would therefore claim that figuring out how to handle the S5 input is harder than figuring out how to handle the S4 input.

        Secondly, I think a lot of people who are working their way up to solving this problem would disagree with the assessment that handling the input is the hardest part of the problem. This problem isn't actually substantially easier if the input is given in a different format, you still need to actually come up with an algorithm to find the minimum cost, and a lot of people are likely to find that much harder than figuring out how to handle the input. Complaining about the input format of S4 as the hardest part of the problem comes off as implicitly bragging that the algorithmic component of the problem is trivial in comparison to handling the input, and is likely to garner downvotes as a consequence.

        • -25
          aaronhe07  commented on July 28, 2020, 9:51 p.m.

          This comment is hidden due to too much negative feedback. Click here to view it.

          • 20
            wleung_bvg  commented on July 28, 2020, 10:42 p.m.

            I can assure you that chika knows how to solve this problem (and there are also other sources where this problem exists). While they often prefer to post anonymously, they are a fairly well respected person internationally in the competitive programming community and their comments are not something that should be immediately dismissed.

  • 5
    mango8023  commented on Aug. 16, 2018, 11:01 p.m.

    i study the code from 'aurpine', and find out that his/her code cannot run the sample input/output correctly! because the graphs in all of the test data are NOT connected, but the graph in sample input is connected. can u fix that?

  • 6
    OOOIII  commented on Feb. 20, 2017, 10:25 p.m.

    Passed all test cases but not SAMPLE explanation request

    • 2
      Kevy3030  commented on May 7, 2020, 11:31 p.m.

      In the sample all the pens were together in one group. It just so happened that in all of the test cases the pens were in two or more different clusters.

  • 5
    sunnylancoder  commented on Dec. 28, 2016, 3:48 p.m.

    Can costs be negative?

    • 2
      Arcslogger  commented on Oct. 26, 2019, 10:55 a.m.

      The question doesn't say that the cost has to be positive

    • 3
      USER18381  commented on Oct. 26, 2019, 9:18 a.m. edited

      No. I highly doubt that.

  • 2
    atarw  commented on April 25, 2016, 8:20 p.m.

    an edge that is specified only once connects that pen to the outside;

    I don’t understand what this means, what would a sample input of a pen connected to the outside be?

    • 3
      Roronoa_Zoro1540  commented on Feb. 9, 2020, 9:35 p.m.

      means that if you see the specific edge in the input only once that means it must connect the pen to the outside (i.e you don't see the edge again in another pen's description)

  • 7
    XIAOAGE  commented on Dec. 27, 2015, 9:20 p.m. edited

    _< What a great trap...........

    • 3
      bobhob314  commented on Dec. 27, 2015, 9:46 p.m.

      Lol Bryan didn't know you're moved to Thornhill S.S., welcome aboard, we meet Thursdays

      • 3
        XIAOAGE  commented on Dec. 27, 2015, 9:51 p.m.

        LOL, i m in Thornhill S.S. virtually :)

  • 3
    kobortor  commented on Feb. 27, 2015, 10:21 p.m.

    Image link is broken.