题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805281567916032

一、可借鉴的

1. 可以直接把机试号码作为下标

可以省去查找的过程,详见笔记的代码

2. long long类型

长数字也不一定要使用字符串,可以使用long long类型

long long 8 10^19左右

二、代码

1. 笔记代码

  1. #include<cstido>
  2. const int maxn = 1010;
  3. struct Student{
  4. long long id;
  5. int examSeat;
  6. }testSeat[maxn];
  7. int main(){
  8. int n,m,seat,examSeat;
  9. long long id;
  10. scanf("%d",&n);
  11. for (int i = 0;i < n;i++)
  12. {
  13. scanf("%lld %d %d",&id,&seat&examSeat);
  14. testSeat[seat].id = id;
  15. testSeat[seat].examSeat = examSeat;
  16. }
  17. scanf("%d",&m);
  18. for (int i = 0;i < m;i++)
  19. {
  20. scanf("%d",&seat);
  21. printf("%lld %d",testSeat[seat].id,testSeat[seat].examSeat);
  22. }
  23. return 0;
  24. }

2. 俺的代码

#include<cstdio>

struct Stu{
    long long id;
    int sjNum;
    int ksNum;
}stu[1000];

int main(){
    int N,M;
    int k = 0;
    scanf("%d",&N);
    for(int i = 0;i<N;i++)
    {
        scanf("%lld %d %d",&stu[i].id,&stu[i].sjNum,&stu[i].ksNum);
    }
    scanf("%d",&M);
    for(int i = 0;i<M;i++)
    {
        scanf("%d",&k);
        for (int j = 0;j<N;j++)
        {
            if(stu[j].sjNum == k)
            {
                printf("%lld %d\n",stu[j].id,stu[j].ksNum);
            }
        }
    }

}