G - 好老师 CSU - 1334
我想当一个好老师,所以我决定记住所有学生的名字。可是不久以后我就放弃了,因为学生太多了,根本记不住。但是我不能让我的学生发现这一点,否则会很没面子。所以每次要叫学生的名字时,我会引用离他最近的,我认得的学生。比如有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相关推荐
- zcmu---1667好老师
G - 好老师 我想当一个好老师,所以我决定记住所有学生的名字.可是不久以后我就放弃了,因为学生太多了,根本记不住.但是我不能让我的学生发现这一点,否则会很没面子.所以每次要叫学生的名字时,我会引用离 ...
- 深度模拟java动态代理实现机制系类之三
这里的内容就比较复杂了,要实现的是对任意的接口,对任意指定的方法,以及对任意指定的代理类型进行代理,就更真实的模拟出java虚拟机的动态代理机制 罗列一下这里涉及的类.接口之间的关系,方便大家学习. ...
- matlab三点确定抛物线,[转]matlab编写的进退法,黄金分割法,抛物线法(二次插值法),wolfe不精确一维搜索...
这是我最优化方法课程的编程作业,贴来和大家分享,后续会继续发来一些最优化的程序.. 以下程序由matlab编写 程序简介 jintuifa.m 进退法,用于确定下单峰区间.根据最优化方法(天津大学出版 ...
- linaro gcc 交叉编译链编译
linaro gcc 交叉编译链编译全解析 在此编译的是4.8.3版本的gcc,依赖2.18的glibc,2.24的binutils 参考http://blog.chinaunix.net/uid-2 ...
- 小学生识字现状调查问卷
小学生识字现状调查问卷 本次问卷调查是为了更好掌握同学们的识字情况,有利于课题研究工作的顺利开展,请各位家长根据孩子的实际情况如实作答,仔细阅读每一道题. 孩子的年龄: 1.您的孩 ...
- matlab用进退法写程序,matlab编写的进退法,黄金分割法,抛物线法(二次插值法),wolfe不精确一维搜索...
这是我最优化方法课程的编程作业,贴来和大家分享,后续会继续发来一些最优化的程序.. 以下程序由matlab编写 程序简介 jintuifa.m 进退法,用于确定下单峰区间.根据最优化方法(天津大学出版 ...
- 深度学习网络大杀器之Dropout(II)——将丢弃学习视为集成学习之我见
原帖:阿里云云栖社区: https://yq.aliyun.com/articles/110002 关于dropout的分析,可以见博主的另外一篇文章: <深度学习网络大杀器之Dropout-- ...
- Aggregation Model : Blending , Bagging , Boosting
⑴Motivation of Aggregation 比如现在有一支股票,你不知道是跌还是涨.你有T个friends,每一个friend对应的建议分别是g1,g2,g3...gn,那么你应该怎么选择建 ...
- 文件上传之伪Ajax方式上传
From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...
最新文章
- 电子科学与技术的就业方向
- 数组常用解题方法(持续更新)
- word转pdf图片模糊怎么办_迅捷PDF转换器如何将word转为长图?word转图片方法
- 一些我们码代码过程中有用的小技巧
- (原创)按照一定的格式生成一定数量的随机数的例子
- 在Castle中使用nhibernate
- ajax框架dwr开发
- emd实现信息隐藏_【读书笔记】深入理解TensorFlow架构设计与实现原理(五)
- 语言android编程规范,计算机语言编程规范-在路上.PDF
- 西交利物浦计算机专业分数线,西交利物浦大学2018年各省及各专业录取分数线及最低录投档线【理科 文科】...
- jzoj1371-假期【RMQ】
- PHP数组的访问方法有几种,PHP数组的几种遍历方法
- JAVA并发系列十九:深入理解ThreadLocal(三)–详解ThreadLocal内存泄漏问题
- 肠道细菌产生的神经递质调节宿主的感觉行为
- 微信小程序——天气查询
- F5 Networks数据中心资源整合解决方案
- python修改电脑桌面壁纸_python设置windows桌面壁纸的方法
- Cloud IDEs For Web Developers – Best Of
- 风影ASP.NET基础教学 13 NET3.0特性补充
- 7 层 OSI 模型