my @students = (
[qw(cap shortsleeve jeans leather flipflop)],
[qw(beenie longsleeve shorts cloth highheel)],
[qw(cap tanktop shorts rope flat)],
[qw(beenie longsleeve shorts cloth flipflop)]
);
####
Hat: 0,2 and 1,3
Shirt: 1,3
...
####
use strict;
use warnings;
use Array::Transpose;
my @students = (
[qw(cap shortsleeve jeans leather flipflop)],
[qw(beenie longsleeve shorts cloth highheel)],
[qw(cap tanktop shorts rope flat)],
[qw(beenie longsleeve shorts cloth flipflop)]
);
my %compares;
for my $x (0..$#students) {
for my $y ($x+1..$#students) {
$compares{$x.",".$y} = 1
}
}
my $categories = transpose([$students[0],$students[1],$students[2],$students[3]]);
my %diffs;
for my $category (0..$#{$categories}) {
my %type;
my @kidcompare;
for my $type (0..$#{$categories->[$category]}) {
if (exists($type{$categories->[$category]->[$type]})) {
push @kidcompare, $type{$categories->[$category]->[$type]} . "," . $type;
} else {
$type{$categories->[$category]->[$type]} = $type
}
}
for (@kidcompare) {
$diffs{$_}++
}
}
my $winner = 4;
for (sort(keys(%compares))) {
if (exists($diffs{$_})) {
if ($diffs{$_} < $winner) {
$winner = $diffs{$_}
}
} else {
print "Short Winner $_\n";
exit
}
}
print "Winner $winner\n";
####
use strict;
use warnings;
use Array::Transpose;
my @students = (
[qw(cap tanktop shorts rope flat)],
[qw(cap shortsleeve jeans leather flipflop)], #Winner
[qw(beenie longsleeve shorts cloth highheel)], #Winner
[qw(beenie longsleeve shorts cloth flipflop)],
);
my %compares;
for my $x (0..$#students) {
for my $y ($x+1..$#students) {
$compares{$x.",".$y} = 1
}
}
my $categories = transpose([$students[0],$students[1],$students[2],$students[3]]);
my %type;
for my $category (0..$#{$categories}) {
for my $type (0..$#{$categories->[$category]}) {
if (exists($type{$categories->[$category]->[$type]})) {
push @{$type{$categories->[$category]->[$type]}}, $type
} else {
push @{$type{$categories->[$category]->[$type]}}, $type
}
}
}
my %diffs;
for (sort(keys(%type))) {
if ($#{$type{$_}} > 0) {
for my $x (0..$#{$type{$_}}) {
for my $y ($x+1..$#{$type{$_}}) {
$diffs{$type{$_}->[$x].",".$type{$_}->[$y]} = 1
}
}
}
}
my $winner = 4;
for (sort(keys(%compares))) {
if (exists($diffs{$_})) {
if ($diffs{$_} < $winner) {
$winner = $diffs{$_}
}
} else {
print "Short Winner $_\n";
exit
}
}
print "Winner $winner\n";