in reply to Re^5: Sorting challenge (Insertion sort)
in thread Sorting challenge

I got a "correct" with this:

use List::Util qw(sum); foreach ( 1 .. <> ) { my %votes; foreach ( 1 .. <> ) { chomp( my( $user, $vote ) = split /\s+/, <> ); $votes{$user} = $vote eq '+' ? 1 : -1; } push @scores, $_ for sum( values %votes ); } print "$_\n" for @scores;

I had to take a shower to wash off the filth after filling out their questionnaire just to submit a solution. I expect to get junk mail even though I specifically opted out of their mailing list.

It could be that I opted to produce all output after all input had been taken.

Q. Do I need to take the input for all testcases at once before processing it?

A. No, you need not take all the input at once. You can take the input for a particular test case and output the answer and then proceed to the next test case. Program should read from standard input and write into standard output. There is no need to read all data first, compute them all and then print all output. It is recommended to read and write data as simultaneously. Technically, server redirects standard stream to files. You can test you programs in the same way at home.


Dave

Replies are listed 'Best First'.
Re^7: Sorting challenge (Insertion sort)
by BrowserUk (Patriarch) on Jul 24, 2013 at 22:48 UTC
    I had to take a shower to wash off the filth after filling out their questionnaire just to submit a solution.

    They have my name as "me here"; workplace as 'not there'; my addy as 'Ahouse' in 'Acity' postcode '90210'; amongst other dross :)

    I expect to get junk mail even though I specifically opted out of their mailing list.

    The beauty of time-limited, disposable email IDs.

    It could be that I opted to produce all output after all input had been taken.

    Nope. This still fails with wrong output:

    #! perl -w use strict; my @scores; for( 1 .. <> ) { my %h; for( 1 .. <> ) { $h{ $_->[0] } = $_->[1] for [ split ' ', <> ]; } my $score = 0; /\+/ and ++$score or --$score for values %h; push @scores, $score; } print "$_\n" for @scores;

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.