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. SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案

    背景 之前做数据抽取的时候,搭了一个mybatis动态数据源切换的架子.方便他们写抽取的代码.今天同事问我,架子里面的mybatisplus的IPage失效了是什么问题.想了一下,应该是写动态数据源的 ...

  2. 用TensorFlow做图像识别(python)

    一.TensorFlow简介 TensorFlow是由谷歌开发的一套机器学习的工具,使用方法很简单,只需要输入训练数据位置,设定参数和优化方法等,TensorFlow就可以将优化结果显示出来,节省了很 ...

  3. FIND_IN_SET 精确查找

    FIND_IN_SET(str,strlist) mysql专为精确匹配字符串而设置的函数 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串 1,2,3,4,5,6,7,8,9: 此函数 ...

  4. Redhat6 RPM 软件管理常用命令汇总

    软件的安装时操作系统管理的基础,与Windows不同,Linux的软件管理有很多种方式,Redhat的最常用的是RPM方式,安装集成在光盘中的RPM包.这种方式比Windows平台的软件管理更加便捷( ...

  5. Web及网络基础学习(一)

    ---恢复内容开始--- 2019.10.16 1.TCP.IP分层  应用层.网络层.传输层.数据链路层 2.各层讲解 应用层 决定了向用户提供应用服务时通信的活动.例如FTP(File Trans ...

  6. 流程控制-物流费用计算(嵌套if)

    题目描述 快递公司规定,如果物品体积超过2.5立方米,不允许快递.如果重量超过40kg,不允许快递.快递收费价格为: 小于等于1kg,一口价10块钱: 大于1kg,小于等于5kg,10块钱的基础上,每 ...

  7. 自己动手搭环境—unit 1.1、Struts2环境搭建

    在手动配置action的基础上引入struts2-convention-plugin-2.x.x.jar以支持action的注解支持 修改的地方主要在struts.xml中 <?xml vers ...

  8. Git将一个项目同时从本地推送到GitHub和Gitee

    前言 博主是根据自己的情况写这篇博文的,每个人遇到的情况和需求可能不一样哈,所以初始的步骤也不一定一致,但是同时推送到Github和Gitee的步骤都会是一致滴! Gitee拉取Github仓库 直接 ...

  9. 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)

    博主学习的源头,感谢!https://www.jianshu.com/p/95a8f035c86c 归一化 (Normalization).标准化 (Standardization)和中心化/零均值化 ...

  10. Ubuntu阿里镜像

    ubuntu 14.04: http://mirrors.aliyun.com/ubuntu-releases/14.04/ ubuntu 16.04: http://mirrors.aliyun.c ...