#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.