传送门

题目描述

塔利娅是一位国际象棋的传奇大师。她有n个奖杯,从1到n排成一排(从左到右),每个奖杯旁边都有一盏灯(灯的编号与奖杯的编号一样)。

一盏灯可以指向左边或右边,它照亮那个方向的所有奖杯(但不照亮它旁边的那个)。更正式地说,Thalia有一个仅由字符'L'和'R'组成的字符串s,代表灯的当前方向。灯的i点亮了。

trophies 1,2,...,i-1 如果si是'L'。

如果si是'R',奖杯i+1,i+2,...,n。

她最多可以进行一次以下操作。

选择一个索引i(1≤i<n)。

调换灯i和i+1(不改变其方向)。也就是说,将si与si+1互换。

塔利亚要求你照亮她所有的奖杯(使每个奖杯至少被一盏灯照亮),或者告诉她不可能这样做。如果有可能,你可以选择执行操作或什么都不做。注意,灯不能改变方向,只允许调换相邻的灯。

输入

每个测试包含多个测试案例。第一行包含测试用例的数量t(1≤t≤10000)。测试用例的描述如下。

每个测试用例的第一行包含一个正整数n (2≤n≤100000) - 奖杯的数量。

每个测试案例的第二行包含一个长度为n的字符串s,仅由字符'L'和'R'组成--第i个字符描述第i个灯的方向。

保证所有测试案例的n之和不超过100000。

输出

对于每个测试案例,如果不可能通过执行一个操作(或什么都不做)来照亮所有的奖杯,则打印-1。否则,如果你选择不执行该操作,则打印0(即通过灯的初始位置照亮奖杯),如果你选择调换灯i和i+1,则打印索引i(1≤i<n)。

如果有多个答案,请打印任何一个。

例子

输入

6
2
LL
2
LR
2
RL
2
RR
7
LLRLLLR
7
RRLRRRL

输出

-1
1
0
-1
3
6

注意

在第一个例子中,可以交换灯1和灯2,或者什么都不做。在任何情况下,都可以得到 "LL "这个字符串。不是所有的奖杯都被照亮,因为奖杯2没有被任何灯照亮--灯1没有照亮,灯2只照亮奖杯1。

在第二个例子中,有必要将灯1和灯2对调。这条线变成了 "RL"。奖杯1由灯2照亮,奖杯2由灯1照亮,因此有可能照亮所有的奖杯。

在第三个例子中,所有奖杯最初都被照亮--因此,不执行任何操作是一个有效的解决方案。

在最后两个例子中,由于所有奖杯最初都被照亮,所以执行交换是没有必要的。但是,所提出的解决方案也是有效的。

思路

全L全R就-1,有RL就0,没RL交换LR

代码

#include<iostream>
#include<cstring>
using namespace std;int main()
{int t;cin>>t;while(t--){int n;cin>>n;string s;cin>>s;int f=0,l=0;for(int i=0;i<n;i++){if(s[i]=='R'){f=i+1;for(int j=i+1;j<n;j++){if(s[j]=='L'){l=j+1;break;}}}}int g=0;for(int i=0;i<n;i++){if(s[i]=='L')g=1;}if((f==0&&l==0)||(g==0))cout<<-1<<endl;else if(f<l)cout<<0<<endl;else{for(int i=f-1;i>=0;i--){if(s[i]=='L'){cout<<i+1<<endl;break;}}}}
}

Hall of Fame相关推荐

  1. Problem I. Hall of Fame (2014 Syria ICPC)

    Problem I. Hall of Fame 来源:ACM International Collegiate Programming Contest, Syrian Collegiate Progr ...

  2. Kobe进入Hall of Fame‘s wifeSpeech

    Last February,i called Mechael and asked him if he would introduce Kobe tonight, and he graciously ( ...

  3. KAF-1300图像传感器入榜IEEE芯片名人堂(Chip Hall of Fame )

    今年夏初,我们的KAF-1300图像传感器入榜美国电气和电子工程师协会的旗舰杂志和网站IEEE Spectrum的首届芯片名人堂.芯片名人堂旨在讲述历史上最好和最有影响力的微芯片(及创建它们的人)的故 ...

  4. MEMS传感器作为变革的驱动力

    MEMS传感器作为变革的驱动力 MEMS sensors as drivers for change 物联网(IoT)正在改变与周围世界互动的方式.每个人,每件事,都是相互联系的,很快就会相互联系.微 ...

  5. 论坛报名 | 智能体系架构与芯片的下一个十年

    与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 2020年6月21-24日,第二届北京智源大会(官网:https://2020.baai ...

  6. “复制粘贴”发明人,竟是物理学博士转行做程序媛!

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 无论是整日写代码的程序员,还是依靠电脑工作的白领,他们的日常操作肯定离开不了"复制"和&q ...

  7. 快评 美国软件开发杂志的最新jolt大奖!

    我主要谈一下获奖书目(因为最近接触了测试和缺陷管理,以后我再聊这两类产品) 遗憾的是General类的书中我一本都没有看过,第二类的技术类书中我看过三本,准确地说是浏览过.说实话这几本书印象一般,要写 ...

  8. ELSE 技术周刊(2017.11.20期)

    业界动态 Introducing the New Firefox: Firefox Quantum FireFox 发布重大更新,"新版本建立在一个全新的的引擎 Quantum 之上,速度是 ...

  9. enterpriseTECH Dec 11

    enterpriseTECH Dec 11 文章目录 enterpriseTECH Dec 11 enterpriseTECH Review investor's perspective: intro ...

最新文章

  1. java中为什么不能通过getClass().getName()获取父类的类名
  2. 2021年春季学期-信号与系统-第一次作业参考答案-第一题
  3. 记一次webpack4+react+antd项目优化打包文件体积的过程
  4. WannaCry病毒横行Windows,Mac用户不应幸灾乐祸!
  5. Github 1300+ 星!旷视开源的深度强化学习绘画智能体论文解读
  6. 设置Android AI开发环境
  7. 牛客假日团队赛1 A.蹄球锦标赛
  8. 安装Centos7时提示 /dev/root does not exits
  9. 基于变步长扰动观察法的最大功率点跟踪
  10. css参考-img标签
  11. Java算法与数据结构、设计模式、高并发视频教程免费下载
  12. 华为云计算HCIE学习总结-云计算主流技术
  13. r语言把两个折线图图像放到一个图里_OpenCV计算机视觉学习(10)——图像变换(傅里叶变换,高通滤波,低通滤波)...
  14. 【转载】HTML5 控制装置陀螺仪 ( 三轴 )
  15. 基于Openfire Smack开发即时通讯应用、获取离线消息,发送消息,联系人列表,添加好友(三)
  16. 如何读取yaml(yml)文件
  17. 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)
  18. 给kvm虚机开放对外访问的端口
  19. JAVA计算机毕业设计科院垃圾分类系统部署+源码+数据库+系统+lw文档
  20. IDE 的主题应该用亮色还是暗色?终极答案来了!

热门文章

  1. OSChina 周三乱弹 ——公司需要随时能关注到身边细节的人
  2. 通过socket数据报传输消息
  3. 如何优雅的使用ChatGPT指令,指令大全
  4. 【MicroPython ESP32】通过sdcard模块读取SD卡实例
  5. 火狐浏览器安装AdGuard
  6. Spring Boot 实现扫码登录
  7. 华为补助武汉员工,最高每日 2000 元;谷歌更新安卓修复数百万台芯片漏洞;Fuchsia OS进入开发者试用阶段 | EA周报...
  8. 四、golang类型讲解--go语言学习笔记
  9. android 蓝牙和wifi存在冲突
  10. go语言io reader_Go语言中异步拆分io.Reader