最小数字子串


日期:
2005-8-27 22:21:00
来源:
信息学奥林匹克
作者:
编辑
vivian
键盘输入一个高精度正整数t(不超过240位),去掉其中S个数字后,剩下的 

数字按原顺序组成一个新数,试对给定的 t 与 S, 寻找一种方案,使剩下的数字 

组成的新数最小. 

  

program lxw001; 

var t1,t2:string[250]; 

    a,b:array[1..250] of integer; 

    i,j,r,s,s1:integer; 

begin 

  writeln(’输入数字串:’); readln(t1); 

  writeln(’输入删除数字个数:’);readln(s); 

  s1:=s;  r:=0;  t2:=’’; 

  for i:=1 to length(t1) do a[i]:=i; 

  repeat 

    i:=1; 

    for j:=1 to s1+1 do  if t1[j]<t1[i] then i:=j; 

    if i>1 then 

      for j:=1 to i-1 do  begin inc(r); b[r]:=a[j]  end; 

    t2:=t2+copy(t1,i,1); 

    delete(t1,1,i); 

    for j:=1 to length(t1) do a[j]:=a[j+i]; 

    s1:=s1-(i-1); 

    if length(t1)=s1 then {处理尾部应删的数} 

      begin 

        for j:=1 to s1 do begin inc(r);b[r]:=a[j] end; 

        s1:=0;  t1:=’’; 

      end; 

  until s1=0; 

  t2:=t2+t1; 

  writeln(’最小数:’,t2); 

  write(’删除数字的位置:  ’); 

  for&nbs

此文共有2页 上一页 1 2 下一页

关闭窗口

   兆联特别申明
1)除本站特殊规定外,本站所有信息均不拥有版权,仅供学习参考!
2)站内大部分内容注明出处及详细信息,版权归作者所有!如果您觉得不妥请及时与我站联系,我们将立即删除。
3)本站提供的资料您只有阅读权,并不等于您得到文章的所有权,本站反对将我站提供的资料直接使用。