#3624. 模拟9联合补给账单 (shared_supply_bill)

模拟9联合补给账单 (shared_supply_bill)

联合补给账单 (shared_supply_bill)

题目描述

一支科考队完成外勤后,需要把一批补给统一运回基地。若每名队员分别安排运输,第 ii 名队员需要支付 aia_i;现在大家合并运输,总费用为 mm

为了让分摊方式尽量公平,队长提出一个规则:每个人因为合并运输而节省的钱数必须完全相同。

给定人数 nn、合并运输总费用 mm,以及每个人单独运输时的费用 aia_i。 请输出每个人最终应支付的金额。答案按四舍五入保留两位小数。

分摊规则为:存在同一个实数 cc,使得每个人节省的钱都是 cc,即第 ii 个人实际支付 aica_i-c,并且所有人实际支付总和为 mm

数据保证总节省金额非负,且按上述规则计算出的每个人实际支付金额也非负。

输入格式

在文件 shared_supply_bill.in 中读入。 第一行两个数,其中 nn 是整数,mm 是实数。 第二行 nn 个非负实数 a1,a2,,ana_1,a_2,\dots,a_n

输出格式

在文件 shared_supply_bill.out 中输出。 输出一行 nn 个实数,依次表示每个人需要支付的金额,按四舍五入保留两位小数。每个数必须恰好输出两位小数,相邻两个数之间用一个空格隔开。

样例

输入数据1

2 100.00
80.00 40.00

输出数据1

70.00 30.00

提示

数据范围

  • 对于10%的数据,n=1n=1
  • 对于30%的数据,n2n \le 2
  • 对于100%的数据,1n1051 \le n \le 10^51m,ai1091 \le m,a_i \le 10^9,且保证存在符合题意的非负分摊结果。