{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-16T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":42290,"title":"GJam 2015 Rd1B: Noisy Neighbors","description":"This Challenge is derived from \u003chttps://code.google.com/codejam/contest/8224486/dashboard#s=p1 GJam 2015 Rd 1B: Noisy Neighbors\u003e. Fastest completion - 8 minutes.\r\n\r\nDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\r\n\r\nInput: m, an RxC zeros array; N number of rooms to be filled\r\n\r\nOutput: NN, minimum number of common walls\r\n\r\nExamples: Small Case 1\u003c=R*C\u003c=16, 0\u003c=N\u003c=R*C\r\n\r\n  [1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\r\n  [1;0;0;1] has 0 common walls\r\n  ones(2,3) has 7 common walls\r\n\r\n\r\nTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\r\n\r\n\r\nAdditional GJam solutions can be found at \u003chttp://www.go-hero.net/jam/15 Example GJam Matlab solutions\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"https://code.google.com/codejam/contest/8224486/dashboard#s=p1\"\u003eGJam 2015 Rd 1B: Noisy Neighbors\u003c/a\u003e. Fastest completion - 8 minutes.\u003c/p\u003e\u003cp\u003eDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\u003c/p\u003e\u003cp\u003eInput: m, an RxC zeros array; N number of rooms to be filled\u003c/p\u003e\u003cp\u003eOutput: NN, minimum number of common walls\u003c/p\u003e\u003cp\u003eExamples: Small Case 1\u0026lt;=R*C\u0026lt;=16, 0\u0026lt;=N\u0026lt;=R*C\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\r\n[1;0;0;1] has 0 common walls\r\nones(2,3) has 7 common walls\r\n\u003c/pre\u003e\u003cp\u003eTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\u003c/p\u003e\u003cp\u003eAdditional GJam solutions can be found at \u003ca href = \"http://www.go-hero.net/jam/15\"\u003eExample GJam Matlab solutions\u003c/a\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/p\u003e","function_template":"function NN = Noisy_Neighbors(m,N)\r\n% m is an RxC zeros array\r\n% N is number of cells to be occupied\r\n% NN is number of edge adjacencies\r\n% Goal is to minimize NN\r\n\r\n  NN=0;\r\nend","test_suite":"tic\r\n%%\r\nm=zeros(5,2);N=8;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=14;\r\nNNexp=18;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(8,2);N=12;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=6;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,6);N=12;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=11;\r\nNNexp=8;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=13;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=15;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=9;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=12;\r\nNNexp=17;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=13;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,4);N=5;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=16;\r\nNNexp=15;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,5);N=8;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=10;\r\nNNexp=6;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=9;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,2);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=15;\r\nNNexp=20;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=4;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=11;\r\nNNexp=8;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=9;\r\nNNexp=1;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=16;\r\nNNexp=24;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=9;\r\nNNexp=1;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=15;\r\nNNexp=22;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,5);N=9;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=10;\r\nNNexp=6;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=15;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,2);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,2);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,7);N=13;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=11;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,6);N=9;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=3;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=15;\r\nNNexp=22;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,2);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,4);N=12;\r\nNNexp=17;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,3);N=6;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=16;\r\nNNexp=15;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=9;\r\nNNexp=12;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(9,1);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=12;\r\nNNexp=11;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=3;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,3);N=4;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=9;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,4);N=6;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=12;\r\nNNexp=11;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=3;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,13);N=9;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,9);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(6,2);N=12;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=8;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=14;\r\nNNexp=18;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=7;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(6,2);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=13;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\ntoc\r\n%%\r\n% function GJam_Rd1B_2015b\r\n%  fn='B-small-practice.in';\r\n%  [data] = read_file(fn); % \r\n%  fidG = fopen('B-small-practice.out', 'w');\r\n%  \r\n% tic\r\n% for i=1:size(data,2) % Cell array has N cols of cases\r\n%  NN = Noisy_Neighbors(data{i});\r\n%  fprintf(fidG,'Case #%i: %i\\n',i,NN);\r\n%  \r\n%  fprintf('Case #%i: %i\\n',i,NN);   \r\n% end\r\n% toc\r\n% fclose(fidG);\r\n% end\r\n% \r\n% function val=Noisy_Neighbors(v)\r\n%  r=v(1);c=v(2);N=v(3);\r\n%  m=zeros(r,c);\r\n%  if N==0\r\n%   val=0;\r\n%   return;\r\n%  end\r\n%  \r\n% ptrset=find(m==0);\r\n% \r\n% val=Inf;\r\n% tlocs=nchoosek(ptrset,N);\r\n% for i=1:size(tlocs,1)\r\n%  m=m*0;\r\n%  tlocv=tlocs(i,:);\r\n%  m(tlocv)=1;\r\n%  vchk=nnz(conv2(m,[1 1])==2)+nnz(conv2(m,[1;1])==2);\r\n%  \r\n%  if vchk\u003cval\r\n%   val=vchk;\r\n%  end\r\n%  if val==0,break;end;\r\n% end\r\n%  \r\n% end\r\n% \r\n% function [d] = read_file(fn)\r\n% d={};\r\n% fid=fopen(fn);\r\n% fgetl(fid); % Total Count ignore\r\n% ptr=0;\r\n% while ~feof(fid)\r\n%  ptr=ptr+1;\r\n%  v=str2num(fgetl(fid)); % r,c,N\r\n%  \r\n%  d{ptr}=v;\r\n%  \r\n% end % feof\r\n%  fclose(fid);\r\n% \r\n% end % read_file\r\n%%\r\ntoc\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":5,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-05-03T17:57:59.000Z","updated_at":"2015-05-03T18:31:40.000Z","published_at":"2015-05-03T18:31:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://code.google.com/codejam/contest/8224486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2015 Rd 1B: Noisy Neighbors\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Fastest completion - 8 minutes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput: m, an RxC zeros array; N number of rooms to be filled\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: NN, minimum number of common walls\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples: Small Case 1\u0026lt;=R*C\u0026lt;=16, 0\u0026lt;=N\u0026lt;=R*C\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\\n[1;0;0;1] has 0 common walls\\nones(2,3) has 7 common walls]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAdditional GJam solutions can be found at\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.go-hero.net/jam/15\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eExample GJam Matlab solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42291,"title":"GJam 2015 Rd1B: Counter Culture","description":"This Challenge is derived from \u003chttps://code.google.com/codejam/contest/8224486/dashboard#s=p0 GJam 2015 Rd 1B: Counter Culture\u003e. Fastest completion - 5 minutes.\r\n\r\nDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\r\n\r\nInput: N, a value from 1 to 1,000,000\r\n\r\nOutput: L, minimum length of sequence to reach N\r\n\r\nExamples: Small Case 1\u003c=N\u003c=1000000\r\n\r\n  N=5,  L=5  [1 2 3 4 5] L=N is true thru 19\r\n  N=23, L=15 [1:12 21 22 23]\r\n\r\n\r\nTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\r\n\r\n\r\nAdditional GJam solutions can be found at \u003chttp://www.go-hero.net/jam/15 Example GJam Matlab solutions\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"https://code.google.com/codejam/contest/8224486/dashboard#s=p0\"\u003eGJam 2015 Rd 1B: Counter Culture\u003c/a\u003e. Fastest completion - 5 minutes.\u003c/p\u003e\u003cp\u003eDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\u003c/p\u003e\u003cp\u003eInput: N, a value from 1 to 1,000,000\u003c/p\u003e\u003cp\u003eOutput: L, minimum length of sequence to reach N\u003c/p\u003e\u003cp\u003eExamples: Small Case 1\u0026lt;=N\u0026lt;=1000000\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eN=5,  L=5  [1 2 3 4 5] L=N is true thru 19\r\nN=23, L=15 [1:12 21 22 23]\r\n\u003c/pre\u003e\u003cp\u003eTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\u003c/p\u003e\u003cp\u003eAdditional GJam solutions can be found at \u003ca href = \"http://www.go-hero.net/jam/15\"\u003eExample GJam Matlab solutions\u003c/a\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/p\u003e","function_template":"function L = Counter_Culture(N)\r\n% N is value to be reached \r\n% L is minimum length of sequence to reach N\r\n% N=23  L=15  the sequence [1:12 21 22 23]\r\n% N=19 L=19 [1:19]\r\n  L=1;\r\nend","test_suite":"tic\r\n%%\r\nN=1;\r\nL=Counter_Culture(N);\r\nLexp=1;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=19;\r\nL=Counter_Culture(N);\r\nLexp=19;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=23;\r\nL=Counter_Culture(N);\r\nLexp=15;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1101;\r\nL=Counter_Culture(N);\r\nLexp=150;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=998999;\r\nL=Counter_Culture(N);\r\nLexp=3334;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=990000;\r\nL=Counter_Culture(N);\r\nLexp=3425;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10110;\r\nL=Counter_Culture(N);\r\nLexp=447;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11111;\r\nL=Counter_Culture(N);\r\nLexp=459;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999991;\r\nL=Counter_Culture(N);\r\nLexp=3426;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=512;\r\nL=Counter_Culture(N);\r\nLexp=46;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999899;\r\nL=Counter_Culture(N);\r\nLexp=3334;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1999;\r\nL=Counter_Culture(N);\r\nLexp=328;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11101;\r\nL=Counter_Culture(N);\r\nLexp=449;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=876543;\r\nL=Counter_Culture(N);\r\nLexp=2657;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=4;\r\nL=Counter_Culture(N);\r\nLexp=4;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=102;\r\nL=Counter_Culture(N);\r\nLexp=31;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11000;\r\nL=Counter_Culture(N);\r\nLexp=1337;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1998;\r\nL=Counter_Culture(N);\r\nLexp=327;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900000;\r\nL=Counter_Culture(N);\r\nLexp=3434;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=131072;\r\nL=Counter_Culture(N);\r\nLexp=1639;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=524288;\r\nL=Counter_Culture(N);\r\nLexp=2149;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=20;\r\nL=Counter_Culture(N);\r\nLexp=20;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=789012;\r\nL=Counter_Culture(N);\r\nLexp=2435;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=200;\r\nL=Counter_Culture(N);\r\nLexp=129;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=109876;\r\nL=Counter_Culture(N);\r\nLexp=3213;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11100;\r\nL=Counter_Culture(N);\r\nLexp=448;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=262144;\r\nL=Counter_Culture(N);\r\nLexp=1842;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11;\r\nL=Counter_Culture(N);\r\nLexp=11;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1001;\r\nL=Counter_Culture(N);\r\nLexp=139;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=987654;\r\nL=Counter_Culture(N);\r\nLexp=2879;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999989;\r\nL=Counter_Culture(N);\r\nLexp=3424;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11011;\r\nL=Counter_Culture(N);\r\nLexp=359;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=4096;\r\nL=Counter_Culture(N);\r\nLexp=238;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900001;\r\nL=Counter_Culture(N);\r\nLexp=1446;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=201;\r\nL=Counter_Culture(N);\r\nLexp=32;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99001;\r\nL=Counter_Culture(N);\r\nLexp=437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999999;\r\nL=Counter_Culture(N);\r\nLexp=3434;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999900;\r\nL=Counter_Culture(N);\r\nLexp=3335;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=901;\r\nL=Counter_Culture(N);\r\nLexp=39;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2201;\r\nL=Counter_Culture(N);\r\nLexp=161;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=90;\r\nL=Counter_Culture(N);\r\nLexp=28;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101;\r\nL=Counter_Culture(N);\r\nLexp=30;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10111;\r\nL=Counter_Culture(N);\r\nLexp=448;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=31;\r\nL=Counter_Culture(N);\r\nLexp=14;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10;\r\nL=Counter_Culture(N);\r\nLexp=10;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10100;\r\nL=Counter_Culture(N);\r\nLexp=437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999998;\r\nL=Counter_Culture(N);\r\nLexp=3433;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999000;\r\nL=Counter_Culture(N);\r\nLexp=3335;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=990001;\r\nL=Counter_Culture(N);\r\nLexp=1536;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=30;\r\nL=Counter_Culture(N);\r\nLexp=22;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900;\r\nL=Counter_Culture(N);\r\nLexp=137;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101001;\r\nL=Counter_Culture(N);\r\nLexp=1538;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999990;\r\nL=Counter_Culture(N);\r\nLexp=3425;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=989999;\r\nL=Counter_Culture(N);\r\nLexp=3424;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=21;\r\nL=Counter_Culture(N);\r\nLexp=13;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=9999;\r\nL=Counter_Culture(N);\r\nLexp=336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100001;\r\nL=Counter_Culture(N);\r\nLexp=1437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10999;\r\nL=Counter_Culture(N);\r\nLexp=1336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100;\r\nL=Counter_Culture(N);\r\nLexp=29;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=91;\r\nL=Counter_Culture(N);\r\nLexp=20;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11010;\r\nL=Counter_Culture(N);\r\nLexp=358;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=29;\r\nL=Counter_Culture(N);\r\nLexp=21;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2001;\r\nL=Counter_Culture(N);\r\nLexp=141;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11110;\r\nL=Counter_Culture(N);\r\nLexp=458;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10001;\r\nL=Counter_Culture(N);\r\nLexp=338;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=9;\r\nL=Counter_Culture(N);\r\nLexp=9;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101000;\r\nL=Counter_Culture(N);\r\nLexp=2436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1000;\r\nL=Counter_Culture(N);\r\nLexp=138;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=19;\r\nL=Counter_Culture(N);\r\nLexp=19;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12000;\r\nL=Counter_Culture(N);\r\nLexp=1348;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999;\r\nL=Counter_Culture(N);\r\nLexp=137;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=22;\r\nL=Counter_Culture(N);\r\nLexp=14;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1111;\r\nL=Counter_Culture(N);\r\nLexp=160;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12001;\r\nL=Counter_Culture(N);\r\nLexp=359;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12;\r\nL=Counter_Culture(N);\r\nLexp=12;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99000;\r\nL=Counter_Culture(N);\r\nLexp=1426;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999001;\r\nL=Counter_Culture(N);\r\nLexp=2436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=899999;\r\nL=Counter_Culture(N);\r\nLexp=3433;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10010;\r\nL=Counter_Culture(N);\r\nLexp=347;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10000;\r\nL=Counter_Culture(N);\r\nLexp=337;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10101;\r\nL=Counter_Culture(N);\r\nLexp=438;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2000;\r\nL=Counter_Culture(N);\r\nLexp=329;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=111;\r\nL=Counter_Culture(N);\r\nLexp=40;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999901;\r\nL=Counter_Culture(N);\r\nLexp=3336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2101;\r\nL=Counter_Culture(N);\r\nLexp=151;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10011;\r\nL=Counter_Culture(N);\r\nLexp=348;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2002;\r\nL=Counter_Culture(N);\r\nLexp=142;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=32;\r\nL=Counter_Culture(N);\r\nLexp=15;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=110;\r\nL=Counter_Culture(N);\r\nLexp=39;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2100;\r\nL=Counter_Culture(N);\r\nLexp=240;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11001;\r\nL=Counter_Culture(N);\r\nLexp=349;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99;\r\nL=Counter_Culture(N);\r\nLexp=28;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1100;\r\nL=Counter_Culture(N);\r\nLexp=238;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1099;\r\nL=Counter_Culture(N);\r\nLexp=237;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1000000;\r\nL=Counter_Culture(N);\r\nLexp=3435;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100000;\r\nL=Counter_Culture(N);\r\nLexp=1436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2200;\r\nL=Counter_Culture(N);\r\nLexp=250;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1110;\r\nL=Counter_Culture(N);\r\nLexp=159;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=432109;\r\nL=Counter_Culture(N);\r\nLexp=1779;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=199;\r\nL=Counter_Culture(N);\r\nLexp=128;\r\nassert(isequal(Lexp,L))\r\n%%\r\ntoc\r\n%%\r\n% function GJam_Rd1B_2015a\r\n% % \r\n% fn='A-small-practice.in';\r\n% [data] = read_file(fn); % \r\n% \r\n% fidG = fopen('A-small-practice.out', 'w');\r\n%  \r\n% tic\r\n% for i=1:size(data,2) % Cell array has J cols of cases\r\n%  L = Counter_Culture(data{i});\r\n%  fprintf(fidG,'Case #%i: %i\\n',i,L);\r\n%  fprintf('Case #%i: %i\\n',i,L); \r\n% end\r\n% toc\r\n% fclose(fidG);\r\n% end\r\n% \r\n% function depth=Counter_Culture(v)\r\n% % create all paths\r\n% persistent m mv maxdepth\r\n% if isempty(m)\r\n%     \r\n%  mv=zeros(1000000,1);\r\n%  m{1000000}=[]; % set cell array size to max possible\r\n%  for i=1:9\r\n%   m{i}=i;\r\n%   mv(i)=i; % place best depth into mv for repeated searches\r\n%  end\r\n%  maxdepth=9;\r\n% end\r\n% \r\n% if mv(v) % usage of persistent data\r\n%  depth=mv(v);\r\n%  return;\r\n% end\r\n% \r\n% \r\n% while 1\r\n%  mset=m{maxdepth}; % start with last set calculated\r\n%  maxdepth=maxdepth+1;\r\n%  msetn=mset+1;\r\n%  \r\n%  msetn=msetn(mv(msetn)==0);\r\n%  mv(msetn)=maxdepth;\r\n%  \r\n%  for i=1:length(mset)\r\n%   flipv=calc_flip(mset(i));\r\n%   if mv(flipv)==0 % new value\r\n%    mv(flipv)=maxdepth;\r\n%    msetn=[msetn flipv]; % add to list\r\n%   end\r\n%  end\r\n%  \r\n%  m{maxdepth}=msetn;\r\n%  \r\n%  if any(msetn==v)\r\n%   depth=maxdepth;\r\n%   return\r\n%  end\r\n%     \r\n% end % while\r\n% \r\n% end\r\n% \r\n% function vr=calc_flip(val)\r\n%  vr=0;\r\n%  while val\r\n%   v1=mod(val,10);\r\n%   vr=10*vr+v1;\r\n%   val=(val-v1)/10;\r\n%  end\r\n% end\r\n% \r\n% function [d] = read_file(fn)\r\n% d={};\r\n% fid=fopen(fn);\r\n% fgetl(fid); % Total Count ignore\r\n% ptr=0;\r\n% while ~feof(fid)\r\n%  ptr=ptr+1;\r\n%  v=str2num(fgetl(fid)); \r\n%  d{ptr}=v;\r\n% end % feof\r\n% fclose(fid);\r\n% end % read_file\r\n%%\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-05-03T21:55:15.000Z","updated_at":"2025-11-20T19:05:41.000Z","published_at":"2015-05-03T22:36:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://code.google.com/codejam/contest/8224486/dashboard#s=p0\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2015 Rd 1B: Counter Culture\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Fastest completion - 5 minutes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput: N, a value from 1 to 1,000,000\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: L, minimum length of sequence to reach N\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples: Small Case 1\u0026lt;=N\u0026lt;=1000000\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[N=5,  L=5  [1 2 3 4 5] L=N is true thru 19\\nN=23, L=15 [1:12 21 22 23]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAdditional GJam solutions can be found at\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.go-hero.net/jam/15\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eExample GJam Matlab solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":42290,"title":"GJam 2015 Rd1B: Noisy Neighbors","description":"This Challenge is derived from \u003chttps://code.google.com/codejam/contest/8224486/dashboard#s=p1 GJam 2015 Rd 1B: Noisy Neighbors\u003e. Fastest completion - 8 minutes.\r\n\r\nDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\r\n\r\nInput: m, an RxC zeros array; N number of rooms to be filled\r\n\r\nOutput: NN, minimum number of common walls\r\n\r\nExamples: Small Case 1\u003c=R*C\u003c=16, 0\u003c=N\u003c=R*C\r\n\r\n  [1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\r\n  [1;0;0;1] has 0 common walls\r\n  ones(2,3) has 7 common walls\r\n\r\n\r\nTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\r\n\r\n\r\nAdditional GJam solutions can be found at \u003chttp://www.go-hero.net/jam/15 Example GJam Matlab solutions\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"https://code.google.com/codejam/contest/8224486/dashboard#s=p1\"\u003eGJam 2015 Rd 1B: Noisy Neighbors\u003c/a\u003e. Fastest completion - 8 minutes.\u003c/p\u003e\u003cp\u003eDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\u003c/p\u003e\u003cp\u003eInput: m, an RxC zeros array; N number of rooms to be filled\u003c/p\u003e\u003cp\u003eOutput: NN, minimum number of common walls\u003c/p\u003e\u003cp\u003eExamples: Small Case 1\u0026lt;=R*C\u0026lt;=16, 0\u0026lt;=N\u0026lt;=R*C\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\r\n[1;0;0;1] has 0 common walls\r\nones(2,3) has 7 common walls\r\n\u003c/pre\u003e\u003cp\u003eTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\u003c/p\u003e\u003cp\u003eAdditional GJam solutions can be found at \u003ca href = \"http://www.go-hero.net/jam/15\"\u003eExample GJam Matlab solutions\u003c/a\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/p\u003e","function_template":"function NN = Noisy_Neighbors(m,N)\r\n% m is an RxC zeros array\r\n% N is number of cells to be occupied\r\n% NN is number of edge adjacencies\r\n% Goal is to minimize NN\r\n\r\n  NN=0;\r\nend","test_suite":"tic\r\n%%\r\nm=zeros(5,2);N=8;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=14;\r\nNNexp=18;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(8,2);N=12;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=6;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,6);N=12;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=11;\r\nNNexp=8;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=13;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=15;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=9;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=12;\r\nNNexp=17;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=13;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,4);N=5;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=16;\r\nNNexp=15;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,5);N=8;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=10;\r\nNNexp=6;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=9;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,2);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=15;\r\nNNexp=20;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=4;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=11;\r\nNNexp=8;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=9;\r\nNNexp=1;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=16;\r\nNNexp=24;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=9;\r\nNNexp=1;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=15;\r\nNNexp=22;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,5);N=9;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=10;\r\nNNexp=6;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=15;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,2);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,2);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,7);N=13;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=11;\r\nNNexp=10;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,6);N=9;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=3;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=15;\r\nNNexp=22;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,2);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,4);N=12;\r\nNNexp=17;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,3);N=6;\r\nNNexp=7;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=16;\r\nNNexp=15;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,3);N=9;\r\nNNexp=12;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(9,1);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=12;\r\nNNexp=11;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,2);N=3;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(7,2);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=6;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,3);N=4;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,15);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(16,1);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=9;\r\nNNexp=3;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(15,1);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(2,4);N=6;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=7;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=12;\r\nNNexp=11;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,4);N=1;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=8;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,16);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=3;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=0;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,13);N=9;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=2;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(1,9);N=6;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(6,2);N=12;\r\nNNexp=16;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=8;\r\nNNexp=4;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=5;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(5,3);N=14;\r\nNNexp=18;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(4,3);N=7;\r\nNNexp=2;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(6,2);N=4;\r\nNNexp=0;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\nm=zeros(3,5);N=13;\r\nNNexp=14;\r\nNN=Noisy_Neighbors(m,N);\r\nassert(isequal(NNexp,NN))\r\n%%\r\ntoc\r\n%%\r\n% function GJam_Rd1B_2015b\r\n%  fn='B-small-practice.in';\r\n%  [data] = read_file(fn); % \r\n%  fidG = fopen('B-small-practice.out', 'w');\r\n%  \r\n% tic\r\n% for i=1:size(data,2) % Cell array has N cols of cases\r\n%  NN = Noisy_Neighbors(data{i});\r\n%  fprintf(fidG,'Case #%i: %i\\n',i,NN);\r\n%  \r\n%  fprintf('Case #%i: %i\\n',i,NN);   \r\n% end\r\n% toc\r\n% fclose(fidG);\r\n% end\r\n% \r\n% function val=Noisy_Neighbors(v)\r\n%  r=v(1);c=v(2);N=v(3);\r\n%  m=zeros(r,c);\r\n%  if N==0\r\n%   val=0;\r\n%   return;\r\n%  end\r\n%  \r\n% ptrset=find(m==0);\r\n% \r\n% val=Inf;\r\n% tlocs=nchoosek(ptrset,N);\r\n% for i=1:size(tlocs,1)\r\n%  m=m*0;\r\n%  tlocv=tlocs(i,:);\r\n%  m(tlocv)=1;\r\n%  vchk=nnz(conv2(m,[1 1])==2)+nnz(conv2(m,[1;1])==2);\r\n%  \r\n%  if vchk\u003cval\r\n%   val=vchk;\r\n%  end\r\n%  if val==0,break;end;\r\n% end\r\n%  \r\n% end\r\n% \r\n% function [d] = read_file(fn)\r\n% d={};\r\n% fid=fopen(fn);\r\n% fgetl(fid); % Total Count ignore\r\n% ptr=0;\r\n% while ~feof(fid)\r\n%  ptr=ptr+1;\r\n%  v=str2num(fgetl(fid)); % r,c,N\r\n%  \r\n%  d{ptr}=v;\r\n%  \r\n% end % feof\r\n%  fclose(fid);\r\n% \r\n% end % read_file\r\n%%\r\ntoc\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":5,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-05-03T17:57:59.000Z","updated_at":"2015-05-03T18:31:40.000Z","published_at":"2015-05-03T18:31:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://code.google.com/codejam/contest/8224486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2015 Rd 1B: Noisy Neighbors\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Fastest completion - 8 minutes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine minimum number of adjacencies for N placed people in an RxC hotel matrix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput: m, an RxC zeros array; N number of rooms to be filled\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: NN, minimum number of common walls\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples: Small Case 1\u0026lt;=R*C\u0026lt;=16, 0\u0026lt;=N\u0026lt;=R*C\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[1 1 1;1 0 1;1 1 1] has minimum 8 common walls vs [1 1 1;1 1 1;1 1 0] has 10 common\\n[1;0;0;1] has 0 common walls\\nones(2,3) has 7 common walls]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTheory: The small case can be solved with brute force using vector set with nchoosek followed by processing of convolutions. The large case has 10000 rooms making brute force hopeless.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAdditional GJam solutions can be found at\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.go-hero.net/jam/15\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eExample GJam Matlab solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42291,"title":"GJam 2015 Rd1B: Counter Culture","description":"This Challenge is derived from \u003chttps://code.google.com/codejam/contest/8224486/dashboard#s=p0 GJam 2015 Rd 1B: Counter Culture\u003e. Fastest completion - 5 minutes.\r\n\r\nDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\r\n\r\nInput: N, a value from 1 to 1,000,000\r\n\r\nOutput: L, minimum length of sequence to reach N\r\n\r\nExamples: Small Case 1\u003c=N\u003c=1000000\r\n\r\n  N=5,  L=5  [1 2 3 4 5] L=N is true thru 19\r\n  N=23, L=15 [1:12 21 22 23]\r\n\r\n\r\nTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\r\n\r\n\r\nAdditional GJam solutions can be found at \u003chttp://www.go-hero.net/jam/15 Example GJam Matlab solutions\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"https://code.google.com/codejam/contest/8224486/dashboard#s=p0\"\u003eGJam 2015 Rd 1B: Counter Culture\u003c/a\u003e. Fastest completion - 5 minutes.\u003c/p\u003e\u003cp\u003eDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\u003c/p\u003e\u003cp\u003eInput: N, a value from 1 to 1,000,000\u003c/p\u003e\u003cp\u003eOutput: L, minimum length of sequence to reach N\u003c/p\u003e\u003cp\u003eExamples: Small Case 1\u0026lt;=N\u0026lt;=1000000\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eN=5,  L=5  [1 2 3 4 5] L=N is true thru 19\r\nN=23, L=15 [1:12 21 22 23]\r\n\u003c/pre\u003e\u003cp\u003eTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\u003c/p\u003e\u003cp\u003eAdditional GJam solutions can be found at \u003ca href = \"http://www.go-hero.net/jam/15\"\u003eExample GJam Matlab solutions\u003c/a\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/p\u003e","function_template":"function L = Counter_Culture(N)\r\n% N is value to be reached \r\n% L is minimum length of sequence to reach N\r\n% N=23  L=15  the sequence [1:12 21 22 23]\r\n% N=19 L=19 [1:19]\r\n  L=1;\r\nend","test_suite":"tic\r\n%%\r\nN=1;\r\nL=Counter_Culture(N);\r\nLexp=1;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=19;\r\nL=Counter_Culture(N);\r\nLexp=19;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=23;\r\nL=Counter_Culture(N);\r\nLexp=15;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1101;\r\nL=Counter_Culture(N);\r\nLexp=150;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=998999;\r\nL=Counter_Culture(N);\r\nLexp=3334;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=990000;\r\nL=Counter_Culture(N);\r\nLexp=3425;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10110;\r\nL=Counter_Culture(N);\r\nLexp=447;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11111;\r\nL=Counter_Culture(N);\r\nLexp=459;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999991;\r\nL=Counter_Culture(N);\r\nLexp=3426;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=512;\r\nL=Counter_Culture(N);\r\nLexp=46;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999899;\r\nL=Counter_Culture(N);\r\nLexp=3334;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1999;\r\nL=Counter_Culture(N);\r\nLexp=328;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11101;\r\nL=Counter_Culture(N);\r\nLexp=449;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=876543;\r\nL=Counter_Culture(N);\r\nLexp=2657;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=4;\r\nL=Counter_Culture(N);\r\nLexp=4;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=102;\r\nL=Counter_Culture(N);\r\nLexp=31;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11000;\r\nL=Counter_Culture(N);\r\nLexp=1337;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1998;\r\nL=Counter_Culture(N);\r\nLexp=327;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900000;\r\nL=Counter_Culture(N);\r\nLexp=3434;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=131072;\r\nL=Counter_Culture(N);\r\nLexp=1639;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=524288;\r\nL=Counter_Culture(N);\r\nLexp=2149;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=20;\r\nL=Counter_Culture(N);\r\nLexp=20;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=789012;\r\nL=Counter_Culture(N);\r\nLexp=2435;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=200;\r\nL=Counter_Culture(N);\r\nLexp=129;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=109876;\r\nL=Counter_Culture(N);\r\nLexp=3213;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11100;\r\nL=Counter_Culture(N);\r\nLexp=448;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=262144;\r\nL=Counter_Culture(N);\r\nLexp=1842;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11;\r\nL=Counter_Culture(N);\r\nLexp=11;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1001;\r\nL=Counter_Culture(N);\r\nLexp=139;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=987654;\r\nL=Counter_Culture(N);\r\nLexp=2879;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999989;\r\nL=Counter_Culture(N);\r\nLexp=3424;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11011;\r\nL=Counter_Culture(N);\r\nLexp=359;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=4096;\r\nL=Counter_Culture(N);\r\nLexp=238;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900001;\r\nL=Counter_Culture(N);\r\nLexp=1446;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=201;\r\nL=Counter_Culture(N);\r\nLexp=32;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99001;\r\nL=Counter_Culture(N);\r\nLexp=437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999999;\r\nL=Counter_Culture(N);\r\nLexp=3434;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999900;\r\nL=Counter_Culture(N);\r\nLexp=3335;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=901;\r\nL=Counter_Culture(N);\r\nLexp=39;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2201;\r\nL=Counter_Culture(N);\r\nLexp=161;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=90;\r\nL=Counter_Culture(N);\r\nLexp=28;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101;\r\nL=Counter_Culture(N);\r\nLexp=30;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10111;\r\nL=Counter_Culture(N);\r\nLexp=448;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=31;\r\nL=Counter_Culture(N);\r\nLexp=14;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10;\r\nL=Counter_Culture(N);\r\nLexp=10;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10100;\r\nL=Counter_Culture(N);\r\nLexp=437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999998;\r\nL=Counter_Culture(N);\r\nLexp=3433;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999000;\r\nL=Counter_Culture(N);\r\nLexp=3335;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=990001;\r\nL=Counter_Culture(N);\r\nLexp=1536;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=30;\r\nL=Counter_Culture(N);\r\nLexp=22;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=900;\r\nL=Counter_Culture(N);\r\nLexp=137;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101001;\r\nL=Counter_Culture(N);\r\nLexp=1538;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999990;\r\nL=Counter_Culture(N);\r\nLexp=3425;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=989999;\r\nL=Counter_Culture(N);\r\nLexp=3424;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=21;\r\nL=Counter_Culture(N);\r\nLexp=13;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=9999;\r\nL=Counter_Culture(N);\r\nLexp=336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100001;\r\nL=Counter_Culture(N);\r\nLexp=1437;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10999;\r\nL=Counter_Culture(N);\r\nLexp=1336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100;\r\nL=Counter_Culture(N);\r\nLexp=29;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=91;\r\nL=Counter_Culture(N);\r\nLexp=20;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11010;\r\nL=Counter_Culture(N);\r\nLexp=358;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=29;\r\nL=Counter_Culture(N);\r\nLexp=21;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2001;\r\nL=Counter_Culture(N);\r\nLexp=141;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11110;\r\nL=Counter_Culture(N);\r\nLexp=458;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10001;\r\nL=Counter_Culture(N);\r\nLexp=338;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=9;\r\nL=Counter_Culture(N);\r\nLexp=9;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=101000;\r\nL=Counter_Culture(N);\r\nLexp=2436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1000;\r\nL=Counter_Culture(N);\r\nLexp=138;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=19;\r\nL=Counter_Culture(N);\r\nLexp=19;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12000;\r\nL=Counter_Culture(N);\r\nLexp=1348;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999;\r\nL=Counter_Culture(N);\r\nLexp=137;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=22;\r\nL=Counter_Culture(N);\r\nLexp=14;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1111;\r\nL=Counter_Culture(N);\r\nLexp=160;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12001;\r\nL=Counter_Culture(N);\r\nLexp=359;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=12;\r\nL=Counter_Culture(N);\r\nLexp=12;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99000;\r\nL=Counter_Culture(N);\r\nLexp=1426;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999001;\r\nL=Counter_Culture(N);\r\nLexp=2436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=899999;\r\nL=Counter_Culture(N);\r\nLexp=3433;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10010;\r\nL=Counter_Culture(N);\r\nLexp=347;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10000;\r\nL=Counter_Culture(N);\r\nLexp=337;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10101;\r\nL=Counter_Culture(N);\r\nLexp=438;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2000;\r\nL=Counter_Culture(N);\r\nLexp=329;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=111;\r\nL=Counter_Culture(N);\r\nLexp=40;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=999901;\r\nL=Counter_Culture(N);\r\nLexp=3336;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2101;\r\nL=Counter_Culture(N);\r\nLexp=151;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=10011;\r\nL=Counter_Culture(N);\r\nLexp=348;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2002;\r\nL=Counter_Culture(N);\r\nLexp=142;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=32;\r\nL=Counter_Culture(N);\r\nLexp=15;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=110;\r\nL=Counter_Culture(N);\r\nLexp=39;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2100;\r\nL=Counter_Culture(N);\r\nLexp=240;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=11001;\r\nL=Counter_Culture(N);\r\nLexp=349;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=99;\r\nL=Counter_Culture(N);\r\nLexp=28;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1100;\r\nL=Counter_Culture(N);\r\nLexp=238;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1099;\r\nL=Counter_Culture(N);\r\nLexp=237;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1000000;\r\nL=Counter_Culture(N);\r\nLexp=3435;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=100000;\r\nL=Counter_Culture(N);\r\nLexp=1436;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=2200;\r\nL=Counter_Culture(N);\r\nLexp=250;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=1110;\r\nL=Counter_Culture(N);\r\nLexp=159;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=432109;\r\nL=Counter_Culture(N);\r\nLexp=1779;\r\nassert(isequal(Lexp,L))\r\n%%\r\nN=199;\r\nL=Counter_Culture(N);\r\nLexp=128;\r\nassert(isequal(Lexp,L))\r\n%%\r\ntoc\r\n%%\r\n% function GJam_Rd1B_2015a\r\n% % \r\n% fn='A-small-practice.in';\r\n% [data] = read_file(fn); % \r\n% \r\n% fidG = fopen('A-small-practice.out', 'w');\r\n%  \r\n% tic\r\n% for i=1:size(data,2) % Cell array has J cols of cases\r\n%  L = Counter_Culture(data{i});\r\n%  fprintf(fidG,'Case #%i: %i\\n',i,L);\r\n%  fprintf('Case #%i: %i\\n',i,L); \r\n% end\r\n% toc\r\n% fclose(fidG);\r\n% end\r\n% \r\n% function depth=Counter_Culture(v)\r\n% % create all paths\r\n% persistent m mv maxdepth\r\n% if isempty(m)\r\n%     \r\n%  mv=zeros(1000000,1);\r\n%  m{1000000}=[]; % set cell array size to max possible\r\n%  for i=1:9\r\n%   m{i}=i;\r\n%   mv(i)=i; % place best depth into mv for repeated searches\r\n%  end\r\n%  maxdepth=9;\r\n% end\r\n% \r\n% if mv(v) % usage of persistent data\r\n%  depth=mv(v);\r\n%  return;\r\n% end\r\n% \r\n% \r\n% while 1\r\n%  mset=m{maxdepth}; % start with last set calculated\r\n%  maxdepth=maxdepth+1;\r\n%  msetn=mset+1;\r\n%  \r\n%  msetn=msetn(mv(msetn)==0);\r\n%  mv(msetn)=maxdepth;\r\n%  \r\n%  for i=1:length(mset)\r\n%   flipv=calc_flip(mset(i));\r\n%   if mv(flipv)==0 % new value\r\n%    mv(flipv)=maxdepth;\r\n%    msetn=[msetn flipv]; % add to list\r\n%   end\r\n%  end\r\n%  \r\n%  m{maxdepth}=msetn;\r\n%  \r\n%  if any(msetn==v)\r\n%   depth=maxdepth;\r\n%   return\r\n%  end\r\n%     \r\n% end % while\r\n% \r\n% end\r\n% \r\n% function vr=calc_flip(val)\r\n%  vr=0;\r\n%  while val\r\n%   v1=mod(val,10);\r\n%   vr=10*vr+v1;\r\n%   val=(val-v1)/10;\r\n%  end\r\n% end\r\n% \r\n% function [d] = read_file(fn)\r\n% d={};\r\n% fid=fopen(fn);\r\n% fgetl(fid); % Total Count ignore\r\n% ptr=0;\r\n% while ~feof(fid)\r\n%  ptr=ptr+1;\r\n%  v=str2num(fgetl(fid)); \r\n%  d{ptr}=v;\r\n% end % feof\r\n% fclose(fid);\r\n% end % read_file\r\n%%\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-05-03T21:55:15.000Z","updated_at":"2025-11-20T19:05:41.000Z","published_at":"2015-05-03T22:36:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://code.google.com/codejam/contest/8224486/dashboard#s=p0\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2015 Rd 1B: Counter Culture\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Fastest completion - 5 minutes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine minimum sequence length to reach a number. Sequence starts at 1 and the next is either +1 or the number's reverse with trailing zeros removed. (eg 2300 is followed by 2301 or 32)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput: N, a value from 1 to 1,000,000\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: L, minimum length of sequence to reach N\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples: Small Case 1\u0026lt;=N\u0026lt;=1000000\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[N=5,  L=5  [1 2 3 4 5] L=N is true thru 19\\nN=23, L=15 [1:12 21 22 23]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTheory: The small case can be solved with brute force or semi-brute force using storage of past calculations. All values are processed at each depth level. Duplicates from [N+1 and flip] are purged. A fast reversal function is essential. Direct summation works well. The large case N limit is 1E14 making even semi-brute force with storage unlikely.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAdditional GJam solutions can be found at\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.go-hero.net/jam/15\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eExample GJam Matlab solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Select Find Solutions, change Language to Matlab. The Test Suite, at the bottom, contains a full GJam Matlab solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"2015\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"2015\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"2015\"","","\"","2015","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a160\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fe22e22a0c0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fe22e229800\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a3e0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fe22e22a340\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fe22e22a2a0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fe22e22a200\u003e":"tag:\"2015\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a200\u003e":"tag:\"2015\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"2015\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"2015\"","","\"","2015","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a160\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fe22e22a0c0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fe22e229800\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a3e0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fe22e22a340\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fe22e22a2a0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fe22e22a200\u003e":"tag:\"2015\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fe22e22a200\u003e":"tag:\"2015\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":42290,"difficulty_rating":"medium"},{"id":42291,"difficulty_rating":"medium"}]}}