Cody

Problem 1907. Capture the flag(s)

Solution 2096178

Submitted on 17 Jan 2020 by cokakola
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
% 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; urlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0&amp;d=1','SetSolutionScore.p'); rehash path; SetSolutionScore(10000); assert(FLAGSLEFT<=10000,sprintf('Left %d flags',FLAGSLEFT)); SetSolutionScore(FLAGSLEFT);

test 1; left 105 flags test 2; left 217 flags test 3; left 0 flags test 4; left 0 flags test 5; left 0 flags test 6; left 0 flags test 7; left 0 flags test 8; left 0 flags test 9; left 258 flags test 10; left 41 flags test 11; left 0 flags test 12; left 0 flags test 13; left 441 flags test 14; left 0 flags test 15; left 389 flags test 16; left 0 flags test 17; left 0 flags test 18; left 0 flags test 19; left 0 flags test 20; left 0 flags test 21; left 0 flags test 22; left 65 flags test 23; left 0 flags test 24; left 0 flags test 25; left 0 flags test 26; left 0 flags test 27; left 0 flags test 28; left 416 flags test 29; left 367 flags test 30; left 0 flags test 31; left 0 flags test 32; left 0 flags test 33; left 0 flags test 34; left 0 flags test 35; left 0 flags test 36; left 4 flags test 37; left 0 flags test 38; left 0 flags test 39; left 0 flags test 40; left 0 flags test 41; left 78 flags test 42; left 0 flags test 43; left 0 flags test 44; left 10 flags test 45; left 0 flags test 46; left 0 flags test 47; left 0 flags test 48; left 6 flags test 49; left 8 flags test 50; left 1 flags Elapsed time is 3.664236 seconds.

Suggested Problems

More from this Author38

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!