Tamflexの貯蔵庫

やる気のない備忘録

codingame - The Gift

貪欲的に小さい順にとけば良い.

#include <bits/stdc++.h>
#define REP(i,n) for(int i=0;i<n;i++)

using namespace std;

typedef long long ll;

int main()
{
  ll n,c; cin>>n>>c;
  vector<ll> a(n,0);
  REP(i,n) cin >> a[i];
  string ans = "";
  sort(a.begin(),a.end());
  REP(i,n)
  {
    int t=(a[i]<c/(n-i))?a[i]:c/(n-i);
    ans+=to_string(t)+"\n";
    c-=t;
  }
  cout << (c>0?"IMPOSSIBLE\n":ans);
  return 0;
}