#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> r(n), a(n), b(n);
    for (int i = 0; i < n; i++) {
        cin >> r[i];
    }
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        b[i] = i + 1;
    }
    for (int i = n - 1; i >= 0; i--) {
        swap(b[i], b[i + r[i]]);
    }
    for (int i = 0; i < n; i++) {
        cout << a[b[i] - 1] << " ";
    }
    cout << endl;
    return 0;
}
题目描述午饭时间喵喵喵幼儿园的 �n 位小朋友从左到右排成一列等待领取自己的午餐。我们将这些小朋友从左到右依次标号为 12⋯ �−1�12⋯n−1n。负责配餐的老师已经拿到了所有人的午饭餐食餐食同样也是从左到右排成一排。老师手里拿到了一份序列 �1⋯��r 1 ⋯r n 代表编号为 �i 的小朋友应该拿到从左向右数第 ��r i 份午餐餐食1≤��≤�1≤r i ≤n 且 ��r i

原文地址: http://www.cveoy.top/t/topic/hEQ0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录