Задание »

Mazākais skaitlis

ID: mazsk
Grūtība: 1/5
Laika limits: 1


Uzdevums

Uzrakstiet programmu, kas ievadītam naturālam skaitlim n nosaka, kādu mazāko naturālo skaitli var izveidot no n cipariem, katru no tiem izmantojot vienu reizi!
Jaunizveidotā skaitļa pieraksts nedrīkst sākties ar 0.

Ievaddati

Teksta faila mazsk.in pirmajā rindā dota naturāla skaitļa n vērtība. Zināms, ka n ciparu skaits nepārsniedz 250.

Izvaddati

Teksta faila mazsk.out pirmajā rindā jāizvada mazākais skaitlis, ko iespējams iegūt no n cipariem.

Piemērs

mazsk.in mazsk.out
42727
22477

© 2001-2002 olimps! http://www.lio.lv/olimps/

Решение »

program mazsk;
var a,b:string; arr:array [0..10] of byte; n,i,k:byte; f:text;

procedure minc();
var i:byte;
begin
 if arr[0]>0 then
  begin
   i:=0;
   repeat
    inc(i);
    if arr[i]>0 then
     begin
      str(i,a);
     end;
   until arr[i]>0;
   dec(arr[i]);
  end
 else a:='';
end;
{===================================}
begin
assign(f,'mazsk.in');
reset(f);
read(f,a);
close(f);
assign(f,'mazsk.out');
rewrite(f);
for i:=1 to length(a) do
 begin
  val(a[i],k,n);
  inc(arr[k]);
 end;

minc();

for i:=0 to 9 do
 for n:=1 to arr[i] do
  begin
   str(i,b);
   a:=a+b;
  end;

write(f,a);
close(f);
end.

Вроде задание было простым, но один нюанс с нулем давал аж целых 6/10.  Вот результат 10/10.

Добавить комментарий