Skip to content

Commit 111088e

Browse files
committed
#123 bug workaround
1 parent 25cf6e3 commit 111088e

File tree

1 file changed

+5
-7
lines changed
  • hard/123 - Efficient Delivery

1 file changed

+5
-7
lines changed

hard/123 - Efficient Delivery/123.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ var solutions = null;
33
var min_diff = 0;
44

55
function 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

Comments
 (0)