#5024. Problem 2. Milk Exchange

0

Problem 2. Milk Exchange

Problem 2. Milk Exchange

USACO 2024 February Contest, Gold

Farmer John 的 NN1N51051 \leq N \leq 5 \cdot 10^5)头奶牛排成一圈。第 ii 头奶牛有一个容量为整数 aia_i1ai1091 \leq a_i \leq 10^9)升的桶。所有桶初始时都是满的。

每一分钟,对于 1i<N1\le i<N,奶牛 ii 会将其桶中所有牛奶传递给奶牛 i+1i+1,奶牛 NN 将其牛奶传递给奶牛 11。所有交换同时发生(即,如果一头奶牛的桶是满的,送出 xx 升牛奶同时收到 xx 升,则她的牛奶量保持不变)。如果此时一头奶牛的牛奶量超过 aia_i,则多余的牛奶会损失。

1,2,,N1, 2, \dots, N 的每一分钟后,所有奶牛总共还余下多少牛奶?

输入格式(从终端 / 标准输入读入):

输入的第一行包含 NN

第二行包含 a1,a2,...,aNa_1,a_2,...,a_N

输出格式(输出至终端 / 标准输出):

输出 NN 行,其中第 ii 行包含 ii 分钟后所有奶牛总共余下的牛奶量。

输入样例:


6
2 2 2 1 2 1

输出样例:


8
7
6
6
6
6

最初,每个桶中的牛奶量为 [2,2,2,1,2,1][2, 2, 2, 1, 2, 1]

  • 11 分钟后,每个桶中的牛奶量为 [1,2,2,1,1,1][1, 2, 2, 1, 1, 1],因此总牛奶量为 88
  • 22 分钟后,每个桶中的牛奶量为 [1,1,2,1,1,1][1, 1, 2, 1, 1, 1],因此总牛奶量为 77
  • 33 分钟后,每个桶中的牛奶量为 [1,1,1,1,1,1][1, 1, 1, 1, 1, 1],因此总牛奶量为 66
  • 44 分钟后,每个桶中的牛奶量为 [1,1,1,1,1,1][1, 1, 1, 1, 1, 1],因此总牛奶量为 66
  • 55 分钟后,每个桶中的牛奶量为 [1,1,1,1,1,1][1, 1, 1, 1, 1, 1],因此总牛奶量为 66
  • 66 分钟后,每个桶中的牛奶量为 [1,1,1,1,1,1][1, 1, 1, 1, 1, 1],因此总牛奶量为 66

输入样例:


8
3 8 6 4 8 3 8 1

输出样例:


25
20
17
14
12
10
8
8

11 分钟后,每个桶中的牛奶量为 [1,3,6,4,4,3,3,1][1, 3, 6, 4, 4, 3, 3, 1],因此总牛奶量为 2525

输入样例:


10
9 9 10 10 6 8 2 1000000000 1000000000 1000000000

输出样例:


2000000053
1000000054
56
49
42
35
28
24
20
20

测试点性质: 测试点 4-5:N2000N \le 2000。测试点 6-8:ai2a_i \le 2。测试点 9-13:所有 aia_i 在范围 [1,109][1,10^9] 内均匀随机生成。测试点 14-23:没有额外限制。

供题:Chongtian Ma,Alex Liang,Patrick Deng