#CSES2129. 任务分配

任务分配

题目背景

翻译自 CSES-2129 题。

题目描述

一家公司有nn个员工,且有nn个任务需要完成。我们知道每个员工执行每个任务的费用。每个员工必须被分配一个任务。请问,如何最优分配任务,使得总费用最小,并给出任务的具体分配方案。

输入格式

第一行包含一个整数nn:表示员工的数量,同时也表示任务的数量。

接下来的nn行中,每行包含nn个整数,表示每个员工执行每个任务的费用。第ii行中的第jj个整数cijc_{ij}表示第ii个员工执行第jj个任务的费用。

输出格式

首先输出最小的总费用。

然后输出nn行,每行包含两个整数aa和bb,表示第aa个员工被分配了第bb个任务。

如果有多个最优解,可以输出任意一个。

样例

4
17 8 16 9
7 15 12 19
6 9 10 11
14 7 13 10
33
1 4
2 1
3 3
4 2

样例1解释

最小的总费用是3333。我们可以通过以下分配方案达到最优:

  • 第11个员工执行第44个任务,费用为99;
  • 第22个员工执行第11个任务,费用为77;
  • 第33个员工执行第33个任务,费用为1010;
  • 第44个员工执行第22个任务,费用为77。

总费用为9+7+10+7=339 + 7 + 10 + 7 = 33。

说明/提示

1≤n≤2001 \leq n \leq 200;

1≤cij≤10001 \leq c_{ij} \leq 1000。