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 ...
最新文章
- transformer预测过程_2019最新进展 | Transformer在深度推荐系统中的应用
- 使用idea2.5建立maven项目
- PHP中is_numeric函数十六进制绕过0day
- api权限管理系统与前后端分离实践
- android点击事件禁用,android-禁用所有视图的触摸事件
- unc0ver 发布新版本支持 iOS 13.3 越狱
- Farseer.Net ORM开源框架 V0.x 教程目录
- windows下flv视频网站进度条随意拖放[转]
- Python~win32com~Excel
- 服务器采购框架合同协议书范本,手写一个满足WSGI协议的Server
- 路由器刷机后无线模块丢失-竞斗云2.0刷机
- pjlib深入剖析和使用详解
- 1.docker学习
- 构建之法第四章学习心得
- 超快的前端引擎——artTemplate-3.0
- Taro小程序分享功能
- 算法的陷阱:超级平台、算法垄断与场景欺骗
- 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- 【web框架】【zheng学习笔记(二)】【外网正式环境下部署(CentOS7.4)】
- robots协议文件的几种写法及示例
热门文章
- 安装haroopad
- linux权限0777代表的含义
- BUUCTF:萌萌哒的八戒
- ThinkPad E430c 2G内存升级为4G【本机硬件信息备份+拆机图】
- x201换风扇_「x201拆机」联想 Thinkpad x201i怎么拆机清理风扇灰尘? - seo实验室
- android 微信播放语音文件,如何将微信语音导出为MP3音频文件-Android平台
- 编程挑战赛第六期我带我的小侄子来了【赛题解析】
- 【021】ColorHexa –关于色彩的百科全书
- 解决Antimalware Service Executable CPU,内存占用高的问题
- python的数字运算_Python基础语法——数字运算