I am absolutely no array king, but here's a suggestion. I didn't bother to include A1-A3, since I couldn't understand what use you have for them, since A is the key...?
DATA SMP1;
SET SMP;
array bb(3) b1-b3;
array cc(3) c1-c3;
retain b1 b2 b3 c1 c2 c3 n;
BY A;
if first.a then do;
n = 1;
do i=1 to dim(bb);
bb(i) = .;
cc(i) = .;
end;
end;
bb(n) = b;
cc(n) = c;
put _all_;
IF LAST.A THEN output;
n+1;
RUN;
Data never sleeps