题目描述午饭时间喵喵喵幼儿园的 �n 位小朋友从左到右排成一列等待领取自己的午餐。我们将这些小朋友从左到右依次标号为 12⋯ �−1�12⋯n−1n。负责配餐的老师已经拿到了所有人的午饭餐食餐食同样也是从左到右排成一排。老师手里拿到了一份序列 �1⋯��r 1 ⋯r n 代表编号为 �i 的小朋友应该拿到从左向右数第 ��r i 份午餐餐食1≤��≤�1≤r i ≤n 且 ��r i
#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;
}
原文地址: http://www.cveoy.top/t/topic/hEQ0 著作权归作者所有。请勿转载和采集!