@@ -3,14 +3,13 @@ var solutions = null;
33var min_diff = 0 ;
44
55function efficient_delivery ( tankers , idx , oil , allocation ) {
6-
76 if ( oil > 0 ) {
87 var capacity = tankers [ idx ] ;
98 var nb = tankers . length ;
109 var last_tanker = false ;
1110 if ( capacity ) {
1211 var cnt = Math . floor ( oil / capacity ) ;
13- var rest = oil % capacity ;
12+ var rest = oil - cnt * capacity ;
1413
1514 if ( idx == ( nb - 1 ) ) {
1615 last_tanker = true ;
@@ -22,6 +21,7 @@ function efficient_delivery( tankers, idx, oil, allocation){
2221 else {
2322 oil -= cnt * capacity ;
2423 }
24+
2525 }
2626 else {
2727 for ( var i = 0 ; i <= cnt ; i ++ ) {
@@ -37,7 +37,6 @@ function efficient_delivery( tankers, idx, oil, allocation){
3737 }
3838
3939 if ( last_tanker && oil > 0 ) {
40-
4140 // no more tankers available
4241 // amount of oil left < amount possible on a tanker
4342 var diff = Number . POSITIVE_INFINITY ;
@@ -49,7 +48,6 @@ function efficient_delivery( tankers, idx, oil, allocation){
4948 if ( diff < min_diff ) {
5049 min_diff = diff ;
5150 }
52- // console.log(min_diff);
5351 }
5452 }
5553
@@ -69,8 +67,8 @@ function solution_cmp(a,b){
6967 var aa = '' ;
7068 var bb = '' ;
7169 for ( var i = 0 , cnt = a . length ; i < cnt ; i ++ ) {
72- aa += new Array ( 5 - a [ i ] . length ) . join ( '0' ) + a [ i ] ;
73- bb += new Array ( 5 - b [ i ] . length ) . join ( '0' ) + b [ i ] ;
70+ aa += new Array ( 4 - a [ i ] . length ) . join ( '0' ) + a [ i ] ;
71+ bb += new Array ( 4 - b [ i ] . length ) . join ( '0' ) + b [ i ] ;
7472 }
7573 return aa > bb ? 1 : - 1 ;
7674}
@@ -86,7 +84,7 @@ fs.readFileSync(process.argv[2]).toString().split('\n').forEach(function (line)
8684 var oil = Number ( tmp [ 1 ] ) ;
8785 tankers = tankers . substr ( 1 , tankers . length - 2 ) . split ( ',' ) . reverse ( ) ;
8886
89- min_diff = oil - 1 ;
87+ min_diff = oil + 1 ;
9088 solutions = [ ] ;
9189
9290 for ( var i = 0 , cnt = tankers . length ; i < cnt ; i ++ ) {
0 commit comments