#CF1476F. 灯笼

灯笼

灯笼

  • 时间限制:2 秒

  • 内存限制:256 MiB

题目描述

有 nn 个灯笼排成一行,第 ii 个灯笼位于位置 ii,亮度为 pip_i。

每个灯笼都可以朝向左侧或右侧。如果第 ii 个灯笼朝向左侧,它会照亮所有满足 j∈[i−pi,i−1]j\in[i-p_i,i-1] 的灯笼;如果它朝向右侧,它会照亮所有满足 j∈[i+1,i+pi]j\in[i+1,i+p_i] 的灯笼。超出 [1,n][1,n] 的位置可以忽略。

请为每个灯笼选择一个方向,使每个灯笼都至少被另一个灯笼照亮;如果无法做到,请报告无解。

输入格式

第一行包含一个整数 tt,表示数据组数。

每组数据包含两行:

  • 第一行包含一个整数 nn,表示灯笼数量;
  • 第二行包含 nn 个整数 p1,p2,…,pnp_1,p_2,\ldots,p_n,表示各灯笼的亮度。

输出格式

对于每组数据,如果存在合法方案,先输出一行 YES,再输出一个长度为 nn、只包含 L 和 R 的字符串。第 ii 个字符为 L 表示第 ii 个灯笼朝左,为 R 表示其朝右。

如果有多种合法方案,可以输出任意一种。

如果不存在合法方案,输出一行 NO。

样例输入 1

4
8
0 0 3 1 1 1 1 2
2
1 1
2
2 2
2
0 1

样例输出 1

YES
RRLLLLRL
YES
RL
YES
RL
NO

数据范围

对于全部数据,1≤t≤1041\le t\le 10^4,2≤n≤3×1052\le n\le 3\times10^5,0≤pi≤n0\le p_i\le n,且同一测试点内所有数据组的 nn 之和不超过 3×1053\times10^5。

子任务编号 分值 特殊限制
1 20 每组 n≤20n\le 20
2 40 每组 n≤2000n\le 2000
3 无特殊限制