P6317 [COCI 2006/2007 #3] TENKICI

题目描述

在一个 $n\times n$ 的棋盘上,有 $n$ 辆坦克,每辆坦克可以攻击到自己所在的行和列上的所有格子。 刚开始一个孩子正在畅快淋漓地玩着这局自己心目中的“二战”,但是他的母亲突然就叫他吃饭了。 他十分不舍,并打算对这些坦克进行若干次移动,每次向上、下、左、右任意方向移动一辆坦克一个格子的距离。 他现在想请你解决,最少需要多少次才能使得这 $n$ 个坦克互相无法攻击到?当然,为了不动脑子并快点去吃饭,你还需给出对应的方案之一。

输入格式

输入第一行一个整数 $n$,表示棋盘的边长以及坦克的数量。 接下来的 $n$ 行,每行两个整数 $r,c$,表示母亲叫他吃饭时这辆坦克所处的位置为第 $r$ 行第 $c$ 列。 行和列分别从上到下,从左到右,用 $1\sim n$ 标号。在任意时刻任何两辆坦克都不能处于相同的位置。

输出格式

输出第一行为一个整数 $k$,表示最少的移动次数。 接下来的 $k$ 行,每行先输出一个整数,表示此次将要移动的坦克;再输出一个字符,为`L`(左),`R`(右),`U`(上),`D`(下)之一,表示移动的方向。 **正确的移动序列可能不唯一,输出任意一种即可,本题使用 SPJ。**

说明/提示

#### 数据规模与约定 对于 $100\%$ 的数据,保证 $5\le n\le 500$,$1\le r,c\le n$。 #### 说明 **题目译自 [COCI2006-2007](https://hsin.hr/coci/archive/2006_2007/) [CONTEST #3](https://hsin.hr/coci/archive/2006_2007/contest3_tasks.pdf) *T4 TENKICI***