P7654 [BalticOI 1996] THE FILLING OF BARRELS (Day 2)
题目描述
在水平面上有 $N$ 个相等的空桶。每桶容积为 $100$ 个单位。它们中的每两个都用一根管道连接。每根管道都连接到两个桶的底部,其有自己的阀门,只能“打开“ ”或“关闭”。开始时,所有阀门都是关闭的。如果一个阀门打开,那么从一个连接的桶中的液体可以快速自由地流向另一个桶,从而使这些桶中的液体量变得相等(连通器原理)。如果阀门关闭,则液体无法通过该管道。
现允许两种操作:
1. “P”(倾倒)一定量的液体倒入规定的桶中。操作说明为:“P $n$ $m$”,其中 $n$ 为桶的编号,$m$ 为要倒入该桶的液体量(单位),
1. “V”(用于阀门)一个规定的阀门转到相反位置(即该阀门原打开现关闭,如果原关闭则现打开)。操作说明为:“V $n_1$ $n_2$”,其中 $n_1$ 和 $n_2$ 为连接有该阀门的管道的桶编号。两种不同的描述 “V $n_1$ $n_2$” 和 “V $n_2$ $n_1$” 指的是同一个阀门。
您的目标是执行给定的操作序列。您必须忽略管道中的液体量。如果某些倾倒操作因液体溢出而无法执行,则必须在适当输出后停止执行该操作序列。
输入格式
第一行包含整数 $N$ 和 $K$(操作数),其余 $K$ 行包含操作描述(每行一个描述)。
输出格式
必须包含 “OK” 以及序列执行结束时所有桶中的最小和最大液体量的值或 “OVERFLOW” 和发生溢出的操作。液体量的数值必须写成实数,小数点后有两位。
说明/提示
#### 数据规模与约定
对于 $100 \%$ 的数据,$1 < N \le 100$。$n$ 和 $m$ 为整数,$0 < n \le N$, $0 < m \le 1000$。$n_1$ 和 $n_2$ 为整数,$0 < n_1 \le N$,$0 < n_2 \le N$,$n_1 ≠ n_2$。 $0 < K \le 1000$。
#### 分值说明
本题分值按 BOI 原题设置,**满分** $25$ 。
#### 题目说明
来源于 Baltic Olympiad in Informatics 1996 的 [Day 2:THE FILLING OF BARRELS](https://boi.cses.fi/files/boi1996_day2.pdf) 。
由 @[求学的企鹅](/user/271784) 翻译整理。