第三周

题目描述

有 �(�≤2×106)n(n2×106) 名同学陆陆续续进入教室。我们知道每名同学的学号(在 11 到 109109 之间),按进教室的顺序给出。上课了,老师想知道第 i 个进入教室的同学的学号是什么(最先进入教室的同学 �=1i=1),询问次数不超过 105105 次。

输入格式

第一行 22 个整数 n 和 m,表示学生个数和询问次数。

第二行 n 个整数,表示按顺序进入教室的学号。

第三行 m 个整数,表示询问第几个进入教室的同学。

输出格式

输出 m 个整数表示答案,用换行隔开。

解题思路:

用一个数组按照学生进教室的顺序输入每个学生的学号,(使用循环输入),再输入我们想知道的第几个同学的学号,用循环遍历到这个同学的时候就输出当前数组当中的学号,就是该同学的学号。

具体代码:

#include<bits/stdc++.h>
using namespace std;
long long a[2000001];//64位整型
int main() {
long long n,m,x;
cin>>n>>m;//输入学生个数和询问次数
for(int i=1;i<=n;++i) cin>>a[i];//输入学号
for(int i=1;i<=m;++i) {
cin>>x;//查询x的学号
cout<<a[x]<<endl;//输出a[x]
}
return 0;
}

posted @ 2023-04-07 23:35  冉思银  阅读(32)  评论(0)    收藏  举报