我想当一个好老师,所以我决定记住所有学生的名字。可是不久以后我就放弃了,因为学生太多了,根本记不住。但是我不能让我的学生发现这一点,否则会很没面子。所以每次要叫学生的名字时,我会引用离他最近的,我认得的学生。比如有10个学生:

A ? ? D ? ? ? H ? ?

想叫每个学生时,具体的叫法是:

位置

叫法

1

A

2

right of A (A右边的同学)

3

left of D (D左边的同学)

4

D

5

right of D (D右边的同学)

6

middle of D and H (D和H正中间的同学)

7

left of H (H左边的同学)

8

H

9

right of H (H右边的同学)

10

right of right of H (H右边的右边的同学)

Input

输入只有一组数据。第一行是学生数n(1<=n<=100)。第二行是每个学生的名字,按照从左到右的顺序给出,以空格分隔。每个名字要么是不超过3个英文字母,要么是问号。至少有一个学生的名字不是问号。下一行是询问的个数q(1<=q<=100)。每组数据包含一个整数p(1<=p<=n),即要叫的学生所在的位置(左数第一个是位置1)。

Output

对于每个询问,输出叫法。注意"middle of X and Y"只有当被叫者有两个最近的已知学生X和Y,并且X在Y的左边。

Sample Input

10
A ? ? D ? ? ? H ? ?
4
3
8
6
10

Sample Output

left of D
H
middle of D and H
right of right of H



做这道题时一定要看清题目,每个名字要么是不超过3个英文字母,要么是问号。所以开数组时要开一个二维数组,当遇到?
号时,数组形式应该是a[i][0],还有就是名字的左边和右边应如何处理。当我们要查询的名字是A????H这样的形式,查询
中间的?,这样我们就要用到for循环。


#include<iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[105][4];int main()
{int n,t,x,l,r;scanf("%d",&n);for( int i=1;i<=n;i++)scanf("%s",a[i]);scanf("%d",&t);while(t--){scanf("%d",&x);l=r=x;if(a[x][0]!='?')printf("%s\n",a[x]);else{while(1){if(l-1>0)l=l-1;if(r+1<=n)r=r+1;if(a[l][0]!='?' && a[r][0]!='?'){printf("middle of %s and %s\n",a[l],a[r]);break;}if(a[l][0]=='?' && a[r][0]!='?'){for( int i=1;i<=r-x;i++)printf("left of ");printf("%s\n",a[r]);break;}if(a[l][0]!='?' && a[r][0]=='?'){for(int i=1;i<=x-l;i++)printf("right of ");printf("%s\n",a[l]);break;}}}}return 0;
}

























G - 好老师 CSU - 1334相关推荐

  1. zcmu---1667好老师

    G - 好老师 我想当一个好老师,所以我决定记住所有学生的名字.可是不久以后我就放弃了,因为学生太多了,根本记不住.但是我不能让我的学生发现这一点,否则会很没面子.所以每次要叫学生的名字时,我会引用离 ...

  2. 深度模拟java动态代理实现机制系类之三

    这里的内容就比较复杂了,要实现的是对任意的接口,对任意指定的方法,以及对任意指定的代理类型进行代理,就更真实的模拟出java虚拟机的动态代理机制 罗列一下这里涉及的类.接口之间的关系,方便大家学习. ...

  3. matlab三点确定抛物线,[转]matlab编写的进退法,黄金分割法,抛物线法(二次插值法),wolfe不精确一维搜索...

    这是我最优化方法课程的编程作业,贴来和大家分享,后续会继续发来一些最优化的程序.. 以下程序由matlab编写 程序简介 jintuifa.m 进退法,用于确定下单峰区间.根据最优化方法(天津大学出版 ...

  4. linaro gcc 交叉编译链编译

    linaro gcc 交叉编译链编译全解析 在此编译的是4.8.3版本的gcc,依赖2.18的glibc,2.24的binutils 参考http://blog.chinaunix.net/uid-2 ...

  5. 小学生识字现状调查问卷

    小学生识字现状调查问卷  本次问卷调查是为了更好掌握同学们的识字情况,有利于课题研究工作的顺利开展,请各位家长根据孩子的实际情况如实作答,仔细阅读每一道题.  孩子的年龄:         1.您的孩 ...

  6. matlab用进退法写程序,matlab编写的进退法,黄金分割法,抛物线法(二次插值法),wolfe不精确一维搜索...

    这是我最优化方法课程的编程作业,贴来和大家分享,后续会继续发来一些最优化的程序.. 以下程序由matlab编写 程序简介 jintuifa.m 进退法,用于确定下单峰区间.根据最优化方法(天津大学出版 ...

  7. 深度学习网络大杀器之Dropout(II)——将丢弃学习视为集成学习之我见

    原帖:阿里云云栖社区: https://yq.aliyun.com/articles/110002 关于dropout的分析,可以见博主的另外一篇文章: <深度学习网络大杀器之Dropout-- ...

  8. Aggregation Model : Blending , Bagging , Boosting

    ⑴Motivation of Aggregation 比如现在有一支股票,你不知道是跌还是涨.你有T个friends,每一个friend对应的建议分别是g1,g2,g3...gn,那么你应该怎么选择建 ...

  9. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

最新文章

  1. 电子科学与技术的就业方向
  2. 数组常用解题方法(持续更新)
  3. word转pdf图片模糊怎么办_迅捷PDF转换器如何将word转为长图?word转图片方法
  4. 一些我们码代码过程中有用的小技巧
  5. (原创)按照一定的格式生成一定数量的随机数的例子
  6. 在Castle中使用nhibernate
  7. ajax框架dwr开发
  8. emd实现信息隐藏_【读书笔记】深入理解TensorFlow架构设计与实现原理(五)
  9. 语言android编程规范,计算机语言编程规范-在路上.PDF
  10. 西交利物浦计算机专业分数线,西交利物浦大学2018年各省及各专业录取分数线及最低录投档线【理科 文科】...
  11. jzoj1371-假期【RMQ】
  12. PHP数组的访问方法有几种,PHP数组的几种遍历方法
  13. JAVA并发系列十九:深入理解ThreadLocal(三)–详解ThreadLocal内存泄漏问题
  14. 肠道细菌产生的神经递质调节宿主的感觉行为
  15. 微信小程序——天气查询
  16. F5 Networks数据中心资源整合解决方案
  17. python修改电脑桌面壁纸_python设置windows桌面壁纸的方法
  18. Cloud IDEs For Web Developers – Best Of
  19. 风影ASP.NET基础教学 13 NET3.0特性补充
  20. 7 层 OSI 模型

热门文章

  1. 环境变量下用户变量和系统变量的区别
  2. 7本Python必读的入门书籍
  3. matlab自协方差函数,自协方差函数,自相关函数,协方差矩阵
  4. Android 实现答题、做题功能(多选、单选、材料、填空)
  5. [luogu p3612] [USACO17JAN]Secret Cow Code S
  6. Windows系统下创建苹果证书
  7. 荔枝派zero运行linux,荔枝派Zero: 5分钟DIY一个迷你笔记本电脑
  8. EasyDarwin 流服务器搭建及相关软件教程
  9. 近似数算术运算的误差和有效数位
  10. 3ds Max导出带贴图的obj模型