#include <bits/stdc++.h> using namespace std; const int N=1e6+5; long long a[N],b[N],pre[N],cur[N]; //tim vi tri lon nhat thoa cur(i)<=a int bs(int l,int r, int x){ int res=0; while (l<=r){ int mid=(l+r)/2; if (cur[mid]<=x) { res=mid;l=mid+1; } else r=mid-1; } return res; } int main() { freopen("training.inp","r",stdin); freopen("training.out","w",stdout); int n,m; cin >> n >> m; for (int i=1; i<=n; i++) cin >> a[i]; for (int i=1; i<=m; i++) cin >> b[i]; sort(b+1,b+1+m); //pre(i) : Tong do kho cua i cuon sach dau tien for(int i=1; i<=m; i++) pre[i]=pre[i-1]+b[i]; //cur(i) : trinh do ban dau toi thieu de giai i bai toan ban dau for(int i=1; i<=m; i++){ cur[i]=b[i]-pre[i-1]; cur[i]=max(cur[i],cur[i-1]); } for(int i=1; i<=n; i++) { long long pos=bs(0,m,a[i]); //dap an : a + tong do kho cua cac bai giai duoc cout << a[i]+pre[pos] << ' '; } }
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Hai, 18 tháng 4, 2022
TRAINING C++
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.