poj3623

来源:互联网 发布:windows编程基础 pdf 编辑:程序博客网 时间:2024/05/29 16:07

【题意】

一个长度为N(N<=30000)的字符串,每次可以从队尾或队首拿出一个字符加入到新字符串队尾,求字典序最小的新字符串

【输入】

第一行一个N

接下来N行每行一个大写字母

【输出】

字典序最小的新字符串


题目跟3617一样,区别是数据范围变大了……因为是贪心效率很高,所以没改就过了……


program poj3623;var  n,i,j,k:longint;  ans,s1,s2:ansistring;  temp:char;begin  readln(n);  s1:='';  for i:=1 to n do    begin      readln(temp);      s1:=s1+temp;    end;  s2:='';  for i:=1 to n do    s2:=s2+s1[n-i+1];  ans:='';  for i:=1 to n do    if (s1<>'')and((s2='')or(s1<s2)) then      begin        ans:=ans+s1[1];        delete(s1,1,1);        delete(s2,length(s2),1);      end                                     else      begin        ans:=ans+s2[1];        delete(s2,1,1);        delete(s1,length(s1),1);      end;  for i:=1 to n do    begin      write(ans[i]);      if i mod 80 = 0 then writeln;    end;end.
原创粉丝点击