D - Souvenirs
https://atcoder.jp/contests/abc358/tasks/abc358_d
思路
贪心算法。
把a数组和b数组从小到大排序。
遍历b数组的每一个元素bi, 在a数组中找到第一个大于等于bi元素,累加值。
Code
https://atcoder.jp/contests/abc358/submissions/54656383
#define int long long int n, m; vector<int> a, b; signed main() { cin >> n >> m; a.resize(n); b.resize(m); for(int i=0; i<n; i++){ cin >> a[i]; } for(int i=0; i<m; i++){ cin >> b[i]; } // candidates sort(a.begin(), a.end()); // customers sort(b.begin(), b.end()); int ans = 0; int a_start = 0; for(int i=0; i<m; i++){ int a_target = lower_bound(a.begin()+a_start, a.end(), b[i]) - a.begin(); if (a_target == n){ cout << -1 << endl; return 0; } ans += a[a_target]; a_start = a_target + 1; } cout << ans << endl; return 0; }
标签:end,int,Souvenirs,数组,abc358,contests From: https://www.cnblogs.com/lightsong/p/18252202