原来妖精先生在夏威夷的教堂里住了太久,家里的信件堆积了太多,凌乱不堪,你的工作就是帮他整理信件。
总计N封的信件,每个信件都有自己的特征码和序号。
输入格式
每组测试数据的
第一行有N个数,分别是不超过N的不重复的正整数,表示N封信件的序号。
第二行也有N个数,分别是有效数字不超过255位的浮点数(没有前导的0且均大于0),表示N封信件的特征码。
信件的序号和特征码按照给出的顺序一一对应。序号与序号间、特征码与特征码间有一个空格,两行均没有多余的空格。
(1<=N<=1000)
输出格式
对每组数据输出N行
请按照序号递增的顺序输出信件的特征码
每行一个特征码,且特征码的格式应与输入完全一致
样例输入1
3 1 2
1.0 21.2 1
样例输出1
21.2
1
1.0
思路就是模拟啦,加一个读入的预处理即可。
#include<bits/stdc++.h> using namespace std; struct Num { int c; string s; }; struct Num p[200000]; bool cmp(const Num &a,const Num &b) { return a.c<b.c; } int main() { int i=0; char str[20000]; char c; while(c=getchar()) { if(c==‘\n‘||c==‘\r‘) break; str[++i]=c; } int point=0; int num=0; for(int i=1;;i++) { if(str[i]==0){p[++point].c=num;num=0;break;} if(str[i]==‘ ‘) {p[++point].c=num;num=0;} else num=num*10+str[i]-‘0‘; } for(int i=1;i<=point;i++) cin>>p[i].s; sort(p+1,p+point+1,cmp); for(int i=1;i<=point;i++) cout<<p[i].s<<endl; return 0; }
婚礼上的小杉
时间: 2024-10-07 00:45:43