第三周
题目描述
有 �(�≤2×106)n(n≤2×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;
}
浙公网安备 33010602011771号