Finish 1998-12-21 00:00:00 UTC

Scoring Test!

by Duane Hanselman

Status: Passed
Results: 0.39% blank
CPU Time: 9.434
Score: 83.2037
Submitted at: 1998-12-17 15:02:19 UTC
Scored at: 2000-03-16 16:51:51 UTC

Current Rank: 82nd
Based on: TweakStream V (diff)
Basis for: why sort tweakstream? (diff)
Basis for: Scoring Test!! (diff)

Comments
Please login or create a profile.
Code
function indexList = binpack(songList,mediaLength)
% same as TweakStreamV except for this comment line
[s,t] = sort(songList);
a = size(s,2);
b = min(a,round(4*a*mediaLength/sum(s)));
c = max(round(5.7*a^0.6875),10);
[d,e] = sort(rand(b,c));
q = 0.25*(a-b);
if q > 1
   r = floor(q*rand(1,c));
   e = e+r(ones(1,b),:);
else
   r = rand(1,c);
end
f = cumsum(s(e));
g = sum(f<=mediaLength);
[d,h] = max(f(g+(0:b:b*c-b)));
indexList = t(e(1:g(h),h));
leftOff = t(e(g(h)+1:end,h));
remTime = mediaLength-d;
onez1 = ones(1,g(h));
onez2 = ones(b-g(h),1);
newFree=remTime+songList(onez2,indexList) - songList(onez1,leftOff)';
newFree(newFree<0) = 9e9;
[m,i] = min(newFree);
[m,j] = min(m);
if m<remTime
   better = 1;
   while better
      aux = indexList(j);
      indexList(j) = leftOff(i(j));
      leftOff(i(j)) = aux;
      remTime = m;
newFree=remTime+songList(onez2,indexList) - songList(onez1,leftOff)';
      newFree(newFree<0) = 9e9;
      [m,i] = min(newFree);
      [m,j] = min(m);
      better = (m<remTime);
   end
end