#511. Milk Exchange

0

Milk Exchange

Milk Exchange

题目描述

农夫约翰的 NN 头奶牛(1≤N≤5⋅1051 \leq N \leq 5 \cdot 10^5)围成一个圆圈排队。 第 ii 头奶牛有一个容量为整数 aia_i(1≤ai≤1091 \leq a_i \leq 10^9)升的桶。所有桶起初都是满的。

每过一分钟,对于 1≤i<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
8
3 8 6 4 8 3 8 1
25
20
17
14
12
10
8
8
10
9 9 10 10 6 8 2 1000000000 1000000000 1000000000
2000000053
1000000054
56
49
42
35
28
24
20
20

提示

初始时,每个桶中的牛奶量为 [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。 经过 11 分钟后,每个桶中的牛奶量为 [1,3,6,4,4,3,3,1][1, 3, 6, 4, 4, 3, 3, 1],因此牛奶总量为 2525。 计分: 输入 4-5:N≤2000N \le 2000 输入 6-8:ai≤2a_i \le 2 输入 9-13:所有 aia_i 在区间 [1,109][1,10^9] 内均匀随机生成。 输入 14-23:无额外限制。 题目贡献者:Chongtian Ma, Alex Liang, Patrick Deng

标签: USACO|2024|Gold

来源

USACO|2024|Gold