UVA690 流水线调度 Pipeline Scheduling

题目描述

你有一台有 $5$ 个工作单元的计算机,以及 $10$ 个完全相同的程序需要执行,每个程序需要用 $n\ (n \le 20)$ 个时间片来执行,程序的执行用一个 $5$ 行 $n$ 列的保留表表示,第 $i$ 行 $j$ 列为 $X$ 表示“当一个程序执行到第 $j$ 个时间片时需要工作单元 $i$ ”。一个工作单元不能同时被多个程序使用,因此需要知道安排这 $10$ 个程序的开始时间,使执行完所有程序所用的时间最短。

输入格式

**输入包含多组数据。** 每组数据共六行:\ 第 $1$ 行,一个整数 $n$;\ 接下来 $5$ 行,每行 $n$ 列,输入“.”或“ $X$”表示保留表,意义如题面所述。 输入以一个 $0$ 结束。

输出格式

每组数据一行,输出一个整数表示执行所有程序最小用时。