Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Competition fuels obsession over Perl

by OverlordQ (Hermit)
on Feb 19, 2004 at 03:18 UTC ( #330127=note: print w/ replies, xml ) Need Help??


in reply to Competition fuels obsession over Perl

We had something similar, except there were 6 rounds of 25 minutes each. The problems we had can be found here:

We used Perl of couse :) It was funny, one of the problems was sorting a list of strings asciibetically, everybody else was using C/C++/VC/etc. Let's just say we blew them away on that one.


Comment on Re: Competition fuels obsession over Perl
Re: Re: Competition fuels obsession over Perl
by Roger (Parson) on Feb 19, 2004 at 07:34 UTC
    Let me give round one a try... There must be a better way of doing this...
    use strict; use warnings; use Algorithm::Loops qw/ NestedLoops /; use Data::Dumper; my @patterns = ( [ 0, 1, 2 ], [ 0, 3, 6 ], [ 0, 4, 8 ], [ 1, 4, 7 ], [ 2, 5, 8 ], [ 2, 4, 6 ], [ 3, 4, 5 ], [ 6, 7, 8 ], ); while (<DATA>) { chomp(my @input = split /\s+/, $_); my @combinations = (); NestedLoops([ [@input], ( sub { my %used; @used{@_}= (1) x @_; return [ grep !$used{$_}, @input ]; } ) x (2), ], sub { push @combinations, [ @_ ]; return 1; }); my @output = map { Validate(\@input, $_) ? $_ : () } @combinations +; print "@input:\n", @output ? Dumper(\@output) : "Not possible", "\ +n\n"; } sub Validate { my ($input, $c) = @_; my %p = map { $_ => 1 } @$c; my @diff = map { $p{$_} ? () : $_ } @$input; foreach (@diff) { return 0 if !Canfit($c, $_); } return 1 } sub Canfit { my ($c, $e) = @_; my @l = map { split //, $_ } @$c; foreach (@patterns) { my $text = join '', @l[ @$_ ]; return 1 if $text eq $e || $text eq reverse $e; } return 0; } __DATA__ tan are nan tom men ora tan are soo and hen oar tom soo san sop hen ora

    Output:
    tan are nan tom men ora: $VAR1 = [ [ 'tan', 'ora', 'men' ], [ 'tom', 'are', 'nan' ] ]; tan are soo and hen oar: Not possible tom soo san sop hen ora: Not possible

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://330127]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (14)
As of 2014-09-22 13:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (192 votes), past polls