| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Why WA? Help Me!!const
MaxN = 20;
var
a : array[1..MaxN] of string;
b : array[0..9] of integer;
s,s1,ss : string;
t,i,k,l : integer;
procedure trim(var s : string);
begin
while s[1] = ' ' do delete(s,1,1);
while s[length(s)] = ' ' do delete(s,length(s),1);
end;
begin
readln(s);
trim(s);
while s <> '-1' do begin
fillchar(a,sizeof(a),0);
t := 1; a[1] := s; k := 0; l := 0;
repeat
fillchar(b,sizeof(b),0);
for i := 1 to length(a[t]) do inc(b[ord(a[t][i]) - 48]);
s1 := '';
for i := 0 to 9 do
if b[i] <> 0 then begin
str(b[i],ss);
s1 := s1 + ss + chr(i + 48);
end;
inc(t); a[t] := s1;
if a[t - 1] = a[t] then begin
k := 1; break;
end;
for i := 1 to t - 1 do
if a[i] = a[t] then begin
k := 2; l := i; break;
end;
if k <> 0 then break;
until t > 15;
if k = 1 then
if t = 2
then writeln(a[1],' is self-inventorying')
else writeln(a[1],' is self-inventorying after ',t - 2,' steps');
if k = 2 then writeln(a[1],' enters an inventory loop of length ',t - l);
if t > 15
then writeln(a[1],' can not be classified after 15 iterations');
readln(s);
trim(s);
end;
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator