Thứ Ba, 3 tháng 5, 2022

SHARE948 C++

#include <bits/stdc++.h>
using namespace std;

struct pt
{
    int gt,tt;
};
pt a[100005];
int kq[100005],n;
long long m,s,tb;


void nhap()
{
    scanf("%d %lld",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        a[i].tt=i;
    }
}

bool ss(pt &x,pt &y)
{
    if(x.gt<y.gt) return true;
    else return false;
}

void giai()
{
        sort(a+1,a+1+n,ss);
       // for(int i=1;i<=n;i++) printf("%d ",a[i].gt);
        s=0;
        for(int i=1;i<=n;i++) s=s+a[i].gt;
        if(s<m)
        {
            printf("-1");return;
        }
        for(int i=1;i<=n;i++)
        {
            tb=m/(n+1-i);
            if(a[i].gt<tb)
            {
                kq[a[i].tt]=a[i].gt;
                m=m-a[i].gt;
            }
            else
            {
                kq[a[i].tt]=tb;
                m=m-tb;
            }
        }
        for(int i=1;i<=n;i++)
            printf("%d ",kq[i]);
}

int main()
{
    freopen("share948.inp","r",stdin);
    freopen("share948.out","w",stdout);
    nhap();
    giai();
}

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.