#P1325. Machine Schedule

Machine Schedule

描述

众所周知,机器调度是计算机科学领域中一个非常经典的问题,并且已经被研究了很长时间。调度问题在必须满足的约束条件的性质以及期望的调度类型方面存在很大差异。在这里,我们考虑一个双机调度问题。

有两台机器A A B B。机器 AA nn 种工作模式,分别称为模式00、模式11、……、模式n1n - 1,同样,机器B B m m 种工作模式,即模式00、模式11、……、模式m1m - 1。一开始,它们都以模式00 工作。

对于给定的k k 个作业,每个作业都可以在两台机器中的任意一台上以特定模式进行处理。例如,作业0 0 可以在机器 AA 上以模式33 处理,或者在机器B B 上以模式44 处理;作业1 1 可以在机器 AA 上以模式22 处理,或者在机器B B 上以模式44 处理,以此类推。因此,对于作业 ii,其约束条件可以用一个三元组(i,x,y) (i, x, y) 来表示,这意味着它可以在机器 AA 上以模式x_x 处理,或者在机器 BB 上以模式yy 处理。

显然,为了完成所有作业,我们需要不时地改变机器的工作模式,但不幸的是,机器的工作模式只能通过手动重启机器来改变。通过改变作业的顺序并为每个作业分配合适的机器,请编写一个程序,使重启机器的次数最少。

输入

该程序的输入文件由若干组配置组成。一组配置的第一行包含三个正整数:nmnm<100n、m(n、m < 100)kk<1000k(k < 1000)。接下来的kk 行给出了k k 个作业的约束条件,每行是一个三元组:ixyi、x、y

输入将以包含单个0 0 的一行结束。

输出

输出应该是每行一个整数,表示重启机器的最少次数。

输入示例

5 5 10
0 1 1
1 1 2
2 1 3
3 1 4
4 2 1
5 2 2
6 2 3
7 2 4
8 3 3
9 4 3
0

输出示例

3

来源

2002 年北京赛区竞赛