C++圣诞节快乐⊙▽⊙

C最近玩上了新游戏,他想在网上交一些朋友,但他不知道应该交什么样的朋友。
首先,小C需要一个随机数生成器来帮助他进行选择,小C找到了一个可生成n个可行朋友id的随机数生成器,代码如下
include<iostream>

using namespace std;
int n,seed,arr[1000001];
void Rand(int seed)
{
seed|=0x123456 ;
for(int i=1;i<=n;i++){
arr[i ]=seed;
seed^=(arr[i]+i);
seed%=10000000;
seed+=1;
}
}
int main()
{
cin>>n>>seed;Rand( seed);
//todo
return 0;
}
得到n个随机数后将他们进行排序。小C会进行m次挑选,每次挑选下标为x的数,选择第x大的数的人交朋友。
输入格式:
第一行包括两个数字n seed
第二行输入一个数字m表示将会进行n组询问
接下来m行 每i行包含一个数字xi,表示将要选择第xi大的数

输出格式:
输出包括m行 每行输出询问的结果
输入样例
10 233
5
2
4
6
8
10
输出样例:
6
10
25
60
1193215
数据范围与提示
n<=1e7,m<=1e5


#include <iostream>
using namespace std;
int n, seed, arr[1000001];
void Rand(int seed)
{
    seed |= 0x123456;
    for (int i = 1; i <= n; i++)
    {
        arr[i] = seed;
        seed ^= (arr[i] + i);
        seed %= 10000000;
        seed += 1;
    }
}
int main()
{
    cin >> n >> seed;
    Rand(seed);
    //降序排序
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    int m,t = 0;
    cin >> m;
    int a[m];
    for(int i = 0;i < m;i++){
        cin >> a[i];
    }
    for(int i = 0;i < m;i++){
        cout << arr[a[i]] << endl;
    }
    return 0;
}
#include <iostream>
#include <algorithm>

using namespace std;

int n, seed, arr[1000001];

void Rand(int seed)
{
    seed |= 0x123456;
    for (int i = 1; i <= n; i++)
    {
        arr[i] = seed;
        seed ^= (arr[i] + i);
        seed %= 10000000;
        seed += 1;
    }
}

int main()
{
    cin >> n >> seed;
    Rand(seed);

    sort(arr+1, arr+n+1);

    int m;
    cin >> m;
    for (int i = 0; i < m; i++)
    {
        int xi;
        cin >> xi;
        cout << arr[xi] << '\n';
    }

    return 0;
}