#10000011. [NOIP 2008 普及组] 排座椅(seat)

内存限制:50 MiB 时间限制:1000 ms 输入文件:seat.in 输出文件:seat.out
题目类型:传统 评测方式:文本比较
上传者: j27eGU

题目描述

一.题目概览

中文题目名称 排座椅
英文题目名称
可执行文件名
输入文件名
输出文件名
每个测试点时限  秒
测试点数目
每个测试点分值
比较方式 全文比较
题目类型 传统

二.提交源程序文件名

对于 pascal 语言
对于 C 语言
对于 C++ 语言

四.运行内存限制

运行内存上限

2.排座椅

【问题描述】

上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 对同学上课时会交头接耳。同学们在教室中坐成了 列,坐在第 行第 列的同学的位置是 ,为了方便同学们进出,在教室中设置了 条横向的通道, 条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。

请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在该方案下,上课时交头接耳的学生对数最少

输入格式

【输入】

输入文件 的第一行,有 各用空格隔开的整数,分别是 )。

接下来 行,每行有 个用空格隔开的整数,第 行的 个整数 ,表示坐在位置 的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。

输入数据保证最优方案的唯一性。

输出格式

【输出】

输出文件 共两行。

第一行包含 个整数,,表示第 行和 行之间、第 行和第 行之间、、第 行和第 行之间要开辟通道,其中 ,每两个整数之间用空格隔开(行尾没有空格)。

第二行包含 个整数,,表示第 列和 列之间、第 列和第 列之间、、第 列和第 列之间要开辟通道,其中 ,每两个整数之间用空格隔开(行尾没有空格)。

样例

【输入输出样例】

seat.in seat.out
4 5 1 2 3
4 2 4 3
2 3 3 3
2
2 4

【输入输出样例解释】

图中用符号 标出了 对会交头接耳的学生的位置,图中 条粗线的位置表示通道,图示的通道划分方案是唯一的最佳方案。