0votos

Kata Potter en Other

por josejuan usando lpsolve perl bash hace 6 años

Una solución completa usando "lpsolve", "perl" y "bash".

Harry Potter es una colección de 7 novelas fantásticas escrita por la autora británica J. K. Rowling, en la que se describen las aventuras del joven aprendiz de mago Harry Potter y sus amigos. Nuestra librería ha decidido poner en venta los libros con una oferta especial.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
################ perl que dada la entrada genera el problema lpsolve ######## 
#!/usr/bin/perl 
 
use strict; 
 
my (@r, $D, @v); 
my @d = (1, 0.95, 0.9, 0.8, 0.75); 
my @N = ('A'..'E'); 
for(my $n = 1; $n < 32; $n++) { 
    $v[$n] = "pack"; 
    for(my $t = 0; $t < 5; $t++) { 
        $v[$n] .= "_$N[$t]" if $n & (1 << $t); 
for(my $n = 1; $n < 32; $n++) { 
    my $nt = -1; 
    for(my $t = 0; $t < 5; $t++) { 
        if($n & (1 << $t)) { 
            $nt++; 
            $r[$t] .= " + $v[$n]"; 
    $D .= " + " . (8 * ($nt + 1) * $d[$nt]) . " * $v[$n]"; 
print "min: " . substr($D, 3) . ";\n"; 
for(my $t = 0; $t < 5; $t++) { 
    print substr($r[$t], 3) . " = $ARGV[$t];\n"; 
print "int"; 
for(my $n = 1; $n < 32; $n++) { 
    print "," if $n > 1; 
    print " $v[$n]"; 
print ";\n"; 
 
 
############## bash que formatea la solución ################ 
#!/bin/bash 
 
./solProblem.pl $@ | lp_solve | grep -v [^0-9]0$ | grep '^pack\|Value' 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.