Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 283263

Submitted on 16 Jul 2013 by Jean-Marie SAINTHILLIER

Correct

1575Size
Leading solution size is 769.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
tic
feval(@assignin,'caller','score',2000);

                    
2
Pass
 
%%
% 2 1
global cseq
cseq{1}=1; % Gift answer
max_seq=find_max_swap_seq(2);
assert(isequal(1:2,unique(max_seq)))
cseq{2}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 1
2 1
3
Pass
 
%%
% 3 2
global cseq
max_seq=find_max_swap_seq(3);
assert(isequal(1:3,unique(max_seq)))
cseq{3}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 2
2 3 1
4
Pass
 
%%
% 4 4
global cseq
max_seq=find_max_swap_seq(4);
assert(isequal(1:4,unique(max_seq)))
cseq{4}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 4
2 4 1 3
5
Pass
 
%%
% 5 7
global cseq
max_seq=find_max_swap_seq(5);
assert(isequal(1:5,unique(max_seq)))
cseq{5}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 7
3 1 4 5 2
6
Pass
 
%%
% 6 10
global cseq
max_seq=find_max_swap_seq(6);
assert(isequal(1:6,unique(max_seq)))
cseq{6}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 10
4 1 6 5 2 3
7
Pass
 
%%
% 7 16
global cseq
max_seq=find_max_swap_seq(7);
assert(isequal(1:7,unique(max_seq)))
cseq{7}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 16
3 1 4 6 7 5 2
8
Pass
 
%%
% 8 22
global cseq
max_seq=find_max_swap_seq(8);
assert(isequal(1:8,unique(max_seq)))
cseq{8}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 17
7 4 8 6 1 5 2 3
9
Pass
 
%%
% 9 30
global cseq
max_seq=find_max_swap_seq(9);
assert(isequal(1:9,unique(max_seq)))
cseq{9}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 22
3 7 5 9 8 1 4 6 2
10
Pass
 
%%
%10 38
global cseq
max_seq=find_max_swap_seq(10);
assert(isequal(1:10,unique(max_seq)))
cseq{10}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 30
2 5 8 1 9 6 4 10 3 7
11
Pass
 
%%
%11 51
global cseq
max_seq=find_max_swap_seq(11);
assert(isequal(1:11,unique(max_seq)))
cseq{11}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 38
6 9 1 10 7 3 5 11 4 2 8
12
Pass
 
%%
%13 80 case 12
global cseq
max_seq=find_max_swap_seq(13);
assert(isequal(1:13,unique(max_seq)))
cseq{12}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 51
2 4 5 6 11 10 3 1 8 12 13 9 7
13
Pass
 
%%
%17 159 case 13
global cseq
max_seq=find_max_swap_seq(17);
assert(isequal(1:17,unique(max_seq)))
cseq{13}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 89
10 5 8 13 9 7 3 17 4 12 2 11 6 16 15 1 14
14
Pass
 
%%
%19 221 case 14
global cseq
max_seq=find_max_swap_seq(19);
assert(isequal(1:19,unique(max_seq)))
cseq{14}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 99
15 16 9 11 10 3 19 4 13 18 12 14 6 2 7 8 1 5 17
15
Pass
 
%%
%23 382 case 15
global cseq
max_seq=find_max_swap_seq(23);
assert(isequal(1:23,unique(max_seq)))
cseq{15}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 143
8 17 4 3 22 15 12 19 10 9 18 20 5 11 7 1 21 23 16 14 6 2 13
16
Pass
 
%%
%29 689 case 16
global cseq
max_seq=find_max_swap_seq(29);
assert(isequal(1:29,unique(max_seq)))
cseq{16}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 194
12 24 17 9 25 20 13 28 6 26 15 3 23 21 18 22 2 7 29 19 11 10 14 27 16 5 1 4 8
17
Pass
 
%%
%31 819 case 17
global cseq
max_seq=find_max_swap_seq(31);
assert(isequal(1:31,unique(max_seq)))
cseq{17}=max_seq;
 seq=max_seq;
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
fprintf('count %i\n',count)
fprintf('%i ',max_seq)
fprintf('\n')
toc
[Warning: Polynomial is not unique; degree >= number of data points.]
[> In polyfit at 71
  In find_max_swap_seq at 5
  In verifyCode>evaluateCode at 227
  In verifyCode at 40
  In fevalJSON at 14
  In workspacefunc at 7]
count 233
14 8 9 13 5 22 29 24 11 25 17 23 12 15 2 27 7 6 10 31 18 16 20 4 26 19 30 1 3 21 28
Elapsed time is 13.476645 seconds.
18
Pass
 
%%
global cseq
total=0;
for i=2:17
 seq=cseq{i};
 count=0;
 while seq(1)>1
  count=count+1;
  seq(1:seq(1))=seq(seq(1):-1:1);
 end
 total=total+count;
end
% 2531 is optimal sum
total=sum([0 1 2 4 7 10 16 22 30 38 51 80 159 221 382 689 819])-total;
assert(total<2001); % Minimum performance requirement
toc
feval(@assignin,'caller','score',min(2000,total));
Elapsed time is 13.500820 seconds.