lower_bound(first,last,val)
回傳第一個>=val的位置,如果找不到,回傳last
在algorithm裡
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int m;
cin >> m;
vector<int> A(n);
for (int i = 0; i < n; i++) cin >> A[i];
long long total = 0;
while (m--) {
int a;
cin >> a;
auto it = lower_bound(A.begin(), A.end(), a);
if (it == A.end()) {
total += (n + 1) * 2;
}
else {
total += ((it - A.begin()) + 1) * 2;
}
}
cout << total;
}
有錯歡迎指教