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. 7.netty内存管理-ByteBuf

    ByteBuf ByteBuf是什么 ByteBuf重要API read.write.set.skipBytes mark和reset duplicate.slice.copy retain.rele ...

  2. 小小知识点(三十五)MATLAB中如何更改所画Figure的图形比例

    1. 打开一个figure,show plot tools and dock figure 2.选择图形的 more properties 3. 选择aspect ratio中的plotboxaspe ...

  3. VS Code配置C/C++环境

    VS Code配置C/C++环境 一.下载和安装VS Code 1.访问VS Code官网下载安装包 2.安装VS Code 3. 安装后, 打开VS Code是英文,按住Ctrl+shift+x进入 ...

  4. Leetcode1296划分数组为连续数字的集合

    解法1: 最暴力的方法,存每个数字出现的次数,排序之后,扫一遍,对于每个数字,看它后面连续的k-1个是否都存在. 耗时:404ms class Solution { public: bool isPo ...

  5. git stash使用

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/daguanjia11/article/ ...

  6. 微信小程序订阅消息,我踩过的坑都在这里了!

    旧的模板消息将在 2020 年 1 月 10 号全面下架,也就是今天,不过貌似现在还可以用!!!我已经改好了,只不过还没有上线,准备坚持到最后一天! 0.订阅消息 简单介绍一下订阅消息的特点: 用户授 ...

  7. WPF 添加提示动画

    下面放一张效果图: 那么具体是怎么实现呢: 前端XAML中: <Image Source="/Images/tips.png" HorizontalAlignment=&qu ...

  8. Linux磁盘管理之LVM逻辑卷快照

    一.快照的工作原理 所谓快照就是将当时的系统数据记录下来,在未来若有数据变动,则会将变更前的数据放入快照区进行保存.我们可理解为快照就是给系统拍了一张照片,记录当时系统在拍快照的状态.只不过现实生活中 ...

  9. ArcEngine DEM叠加影像

    代码执行前: 代码执行后: 影像叠加代码: /// <summary> /// 叠加DEM /// </summary> /// <param name="pR ...

  10. python关系(比较)运算符

    关系运算符 就是 比较运算符 a.对象的值进行比较 数字间的比较运算符连着使用: 数字与True.False的比较True 表示 1 , False 表示 0 数字与字符串的比较(不能比较) 字符串间 ...