http://codeforces.com/problemset/problem/733/C

从后往前一个个b对应一组组a。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; int n,k,a[],b[],ans[];
char c[]; int main()
{
int sum1 = ,sum2 = ,cnt = ;
scanf("%d",&n);
for(int i = ;i <= n;i++)
{
scanf("%d",&a[i]);
sum1 += a[i];
}
scanf("%d",&k);
for(int i = ;i <= k;i++)
{
scanf("%d",&b[i]);
sum2 += b[i];
}
if(sum1 != sum2)
{
printf("NO\n");
return ;
}
int r = n,l = r;
for(int i = k;i >= ;i--)
{
for(;l >= ;l--)
{
if(b[i] > a[l]) b[i] -= a[l];
else if(b[i] < a[l])
{
printf("NO\n");
return ;
}
else
{
if(l != r)
{
int maxx = a[r],t,flag = ;
for(int j = r;j >= l;j--)
{
if(maxx != a[j]) flag = ;
maxx = max(maxx,a[j]);
}
if(flag)
{
printf("NO\n");
return ;
}
for(int j = r;j >= l;j--)
{
if(maxx != a[j]) continue;
if(j == r && a[r-] != maxx)
{
flag = ;
for(int h = r;h > l;h--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'L';
}
break;
}
else if(j == l && a[l+] != maxx)
{
flag = ;
for(int h = l;h < r;r--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'R';
}
break;
}
else if(j != r && a[j+] != maxx)
{
flag = ;
int h;
for(h = j;h < r;r--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'R';
}
for(;h > l;h--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'L';
}
break;
}
else if(j != l && a[j-] != maxx)
{
flag = ;
int h;
for(h = j;h > l;h--,r--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'L';
}
for(;h < r;r--)
{
cnt++;
ans[cnt] = h;
c[cnt] = 'R';
}
break;
}
}
if(!flag)
{
printf("NO\n");
return ;
}
}
l--;
r = l;
break;
}
}
}
printf("YES\n");
for(int i = ;i <= cnt;i++) printf("%d %c\n",ans[i],c[i]);
return ;
}

Codeforces_733_C的更多相关文章

随机推荐

  1. Selenium python爬虫

    Selenium + Python3 爬虫 准备工作 Chrome驱动下载地址(可正常访问并下载),根据自己chrome的版本下载 Chrome版本 下载地址 78 https://chromedri ...

  2. linux的指令与文件的搜寻

    1.指令路径搜索which 用法:which [-a] command 选项或参数:-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称  2.文件搜索 (1)wher ...

  3. 【已解决】CentOS7使用yum安装Docker显示错误:cannot find a valid baseurl for repo: base/7/x86_64

    不得不说,Docker 要求 CentOS 系统的内核版本高于 3.10,这就让有些人开始头疼了,而要查看具体的版本可以用以下命令 uname -r 当然,CentOS 6.8版本也能安装Docker ...

  4. Excel如何快速选定指定区域

    在日常办公中我们经常遇见需要选中指定的区域,这样选种比较快捷节省时间,要比用鼠标下拉要方便很多. 1.框选的是起始的位置(A1) 2.终止位置 3.这就是我们所要选中的区域例如(A1:H21) 总结: ...

  5. 欧拉-拉格朗日方程 The Euler-Lagrange Equation

    在 paper: Bounded Biharmonic Weights for Real-Time Deformation 中第一次接触到 Euler-Lagrange 方程,简单记录一下. 泛函的定 ...

  6. SpringBoot2 整合Nacos组件,环境搭建和入门案例详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Nacos基础简介 1.概念简介 Nacos 是构建以"服务"为中心的现代应用架构,如微服务范式.云原生范式等服务基础 ...

  7. echarts更改坐标轴文字颜色及大小

    xAxis: { data: anameArr, axisLabel: { show: true, textStyle: { color: '#c3dbff', //更改坐标轴文字颜色 fontSiz ...

  8. python——pickle模块的详解

    pickle模块详解 该pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议. “Pickling”是将Python对象层次结构转换为字节流的过程, “unpickling”是反 ...

  9. 如何获取scrimba内部(内联框架)中网页地址?

    看图:  将其在新窗口打开  方法一:按下F12 键 (打开 开发者工具) ,再照图中箭头用鼠标点击所示, 图中粗红下划线为该页面的URL 地址, 复制在新窗口打开即可 方法二:利用JS代码手动获取 ...

  10. mysql复习2

    -- 1. 创建和管理表 CREATE TABLE -- 方式一:CREATE TABLE emp1( id INT(10), `name` VARCHAR(20), salary DOUBLE(10 ...