8.17 婚礼上的小杉 1533

题目

背景Background

  小杉的幻想来到了经典日剧《求婚大作战》的场景里……
  他正在婚礼上看幻灯片,一边看着可爱的新娘长泽雅美,一边想,如果能再来一次就好了(-.-干嘛幻想这么郁闷的场景……)。
  小杉身为新一代的山下智久,在虔诚地在心里呼喊了几千次以后,妖精终于出现了。
  妖精说,我还是可以帮你回到这张照片的过去,让你再来一次,可是你要帮我一个忙。
(若对情节有任何疑问,请观看原剧)

描述Description

  原来妖精先生在夏威夷的教堂里住了太久,家里的信件堆积了太多,凌乱不堪,你的工作就是帮他整理信件。
  总计N封的信件,每个信件都有自己的特征码和序号。

第一行有N个数,分别是不超过N的不重复的正整数,表示N封信件的序号。
第二行也有N个数,分别是有效数字不超过255位的浮点数(没有前导的0且均大于0),表示N封信件的特征码。
信件的序号和特征码按照给出的顺序一一对应。序号与序号间、特征码与特征码间有一个空格,两行均没有多余的空格。
(1<=N<=1000)

对每组数据输出N行
请按照序号递增的顺序输出信件的特征码
每行一个特征码,且特征码的格式应与输入完全一致
3 1 2
1.0 21.2 1

21.2
1
1.0

题解

第一眼看——好水啊,真的有这么水吗?
第二眼看——好像读入有点麻烦
然后打了一个桶,嗯,提交——惊!WA!

一个很不可爱的bug——分别是有效数字不超过255位的浮点数——意思就是数字部分<=255位,加上小数点就超过255位了!

然后把string改成ansistring就这样A了……

时间复杂度O(n)

代码

var
  n,i,j,k:longint;
  t:ansistring;
  a,b:array[1..1000]of longint;
  s:array[1..1000]of ansistring;
begin
  readln(t);
  while pos(' ',t)>0 do
    begin
      inc(n);
      val(copy(t,1,pos(' ',t)-1),b[n]);
      delete(t,1,pos(' ',t));
    end;
  inc(n);val(t,b[n]);
  readln(t);
  for i:=1 to n-1 do
    begin
      s[i]:=copy(t,1,pos(' ',t)-1);
      delete(t,1,pos(' ',t));
    end;
  s[n]:=t;
  for i:=1 to n do
    a[b[i]]:=i;
  for i:=1 to 1000 do
    if a[i]<>0 then
      writeln(s[a[i]]);
end.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值