#P12823. [NERC 2021] Job Lookup

    ID: 12603 Type: RemoteJudge 3000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>2021Special Judge区间 DPICPCNERC/NEERC

[NERC 2021] Job Lookup

题目描述

Julia's nn friends want to organize a startup in a new country they moved to. They assigned each other numbers from 1 to nn according to the jobs they have, from the most front-end tasks to the most back-end ones. They also estimated a matrix cc, where cij=cjic_{ij} = c_{ji} is the average number of messages per month between people doing jobs ii and jj.

Now they want to make a hierarchy tree. It will be a binary tree\textbf{binary tree} with each node containing one member of the team. Some member will be selected as a leader of the team and will be contained in the root node. In order for the leader to be able to easily reach any subordinate, for each node vv of the tree, the following should apply: all members in its left subtree must have smaller numbers than vv, and all members in its right subtree must have larger numbers than vv.

After the hierarchy tree is settled, people doing jobs ii and jj will be communicating via the shortest path in the tree between their nodes. Let's denote the length of this path as dijd_{ij}. Thus, the cost of their communication is cijdijc_{ij} \cdot d_{ij}.

Your task is to find a hierarchy tree that minimizes the total cost of communication over all pairs: 1i<jncijdij\sum_{1 \le i < j \le n} c_{ij} \cdot d_{ij}.

输入格式

The first line contains an integer nn (1n2001 \le n \le 200) -- the number of team members organizing a startup.

The next nn lines contain nn integers each, jj-th number in ii-th line is cijc_{ij} --- the estimated number of messages per month between team members ii and jj (0cij109;cij=cji;cii=00 \le c_{ij} \le 10^9; c_{ij} = c_{ji}; c_{ii} = 0).

输出格式

Output a description of a hierarchy tree that minimizes the total cost of communication. To do so, for each team member from 1 to nn output the number of the member in its parent node, or 0 for the leader. If there are many optimal trees, output a description of any one of them.

4
0 566 1 0
566 0 239 30
1 239 0 1
0 30 1 0
2 4 2 0

提示

The minimal possible total cost is $566 \cdot 1+239 \cdot 1+30 \cdot 1+1 \cdot 2+1 \cdot 2=839$: