This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.
This solution is outdated. To rescore this solution, sign in.
This runs fine on my machine but I guess Cody is running without very much memory, so it can't handle it...well it was only scoring about 3000 anyway.
Test | Status | Code Input and Output |
---|---|---|
1 | Fail |
%%
% test cases
randn('seed',0);
rand('seed',0);
N=randi([1000 4000],50,1);
S=randi([1,50],50,1);
Boards=arrayfun(@(s)convn(randn(100),ones(s)/s^2,'same'),S,'uni',0);
FLAGSLEFT=0;
DOPLOT=false;
tic;
for board=1:50
B=Boards{board};
sB=sort(B(:));
B=double(B>sB(round(numel(sB)*.9)));
n=N(board);
path=capture_the_flag(B,n);
assert(size(path,1)<=n,'too many steps');
assert(all(sum(abs(diff([1,1;path])),2)<=1),'no jumping allowed');
if DOPLOT
imagesc(B);
hold on;
plot(path(:,2),path(:,1),'y-');
hold off;
axis equal;
axis off;
set(gcf,'color',0*[1 1 1]);
colormap(.5*gray);
drawnow;
end
B(1)=0;
B((path-1)*[1;size(B,1)]+1)=0;
fprintf('test %d; left %d flags\n',board,nnz(B));
FLAGSLEFT=FLAGSLEFT+nnz(B);
end
toc;
assignin('caller','score',10000);
assert(FLAGSLEFT<=10000,sprintf('Left %d flags',FLAGSLEFT));
assignin('caller','score',FLAGSLEFT);
Error: Out of memory. Type HELP MEMORY for your options.
|
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!