2576 - A.鑫神说黑雯神系列---雯神数字帝
时间限制 : 1 秒
内存限制 : 128 MB
众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝,众所周知,雯神是一个数字帝................
她自己有自己的一套看数字的方法。输入一些数字,请把这些数字按照雯神眼中的大小来排序,然后从小到大输出。
题目输入
第一行,输入一个t表示有t组数据。每组数据第一行输入一个0-9的排列,第i的数表示雯神眼中xi表示i,然后接下来输入一个n,(n<=100)然后再输入n个数(0<=ai<=10000)。
题目输出
输出这n个数在雯神眼中的序列。
输入/输出样例
输入格式
1 9 8 7 6 5 4 3 2 1 0 4 3 10 2 90
输出格式
3 2 90 10
C++解答
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct P { int y,x; }a[105]; char c[10]; int p[11]; bool cmp(P a,P b) { return a.x<b.x; } int main() { // freopen("inputA.txt","r",stdin); // freopen("outputA.txt","w",stdout); int t; scanf("%d",&t); while(t--) { for(int i=0;i<=9;i++) { int k; scanf("%d",&k); p[k]=i; } int n; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s",c); int len=strlen(c); int k=0; int k1=0; for(int j=0;j<len;j++) { k1*=10;k1+=c[j]-'0'; c[j]=p[c[j]-'0']; k*=10;k+=c[j]; } a[i].x=k; a[i].y=k1; } sort(a,a+n,cmp); for(int i=0;i<n;i++) printf("%d ",a[i].y); printf("\n"); } }