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 322130

Submitted on 22 Sep 2013

Incorrect

2000Size
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')
count 0
1 2
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')
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')
count 2
2 4 3 1
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')
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')
count 1
4 2 6 1 5 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')
count 1
4 7 6 1 2 5 3
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')
count 21
6 1 5 3 8 7 2 4
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')
count 9
7 2 9 4 5 6 8 3 1
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')
count 0
1 4 3 2 10 7 9 8 5 6
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')
count 9
10 1 3 2 5 9 6 4 11 8 7
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')
count 23
12 4 13 10 3 2 7 11 5 9 1 6 8
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')
count 10
7 2 4 12 8 10 11 1 6 15 3 14 5 17 9 16 13
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')
count 11
2 15 7 5 11 1 14 17 18 16 10 13 6 3 19 8 9 4 12
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')
count 4
9 4 21 3 16 10 7 15 8 23 5 14 20 18 6 1 17 12 2 13 19 22 11
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')
count 6
23 28 8 6 20 29 25 1 18 13 11 10 22 19 5 9 12 26 17 16 15 27 21 7 14 4 24 3 2
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
count 25
23 8 30 27 10 22 1 3 29 15 20 6 24 16 17 7 5 14 18 11 2 13 25 31 4 9 21 19 26 12 28
Elapsed time is 2.087398 seconds.
18
Fail
 
%%
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));
Error: Assertion failed.