题解:B3951 [GESP样题 五级] 小杨的队列
纯模拟
思路
先读入数组,接下来每进来一个人,就从前往后枚举,如果遇见比他高的人,就把他们交换,并将操作次数加一。
数组枚举完毕后,输出操作次数即可
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000000];
int b[1000000];
signed main() {
int n;
cin >> n;
int i, j, k;
for (i = 0; i < n; i++) {
cin >> a[i];
}
int m;
cin >> m;
for (i = 1; i <= m; i++) {
cin >> k;
b[i] = a[k];
int ans = 0;
for (j = 1;j<=i; j++) {
if (b[j] > b[i]) {
swap(b[i], b[j]);
ans++;
}
}
cout << ans << endl;
}
}