2576 - A.鑫神说黑雯神系列---雯神数字帝

通过次数

0

提交次数

0

时间限制 : 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");
    }
}