zcmu-1667
来源:互联网 发布:英语四级网络课程 编辑:程序博客网 时间:2024/06/16 04:05
1667: 好老师
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 30 Solved: 15
[Submit][Status][Web Board]
Description
我想当一个好老师,所以我决定记住所有学生的名字。可是不久以后我就放弃了,因为学生太多了,根本记不住。但是我不能让我的学生发现这一点,否则会很没面子。所以每次要叫学生的名字时,我会引用离他最近的,我认得的学生。比如有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
10A ? ? D ? ? ? H ? ?438610
Sample Output
left of DHmiddle of D and Hright of right of H
思路:用string比较方便,找字符?与其他的字母的距离,然后分别记录,每一个字符便利一遍,分别对应不同情况。
代码:
#include<cstdio>#include<string>#include<string>#include<iostream>using namespace std;int main(){ string s[105]; int n,i,j,q,m,l,r; while(cin>>n) { for(i=1;i<=n;i++) cin>>s[i]; cin>>q; while(q--) { cin>>m; l=r=0; i=0; int temp=0; while(1) { if(m+i<=n && s[m+i]!="?")//找一个在它前面与它相近的字符 { l=i; temp=1; } if(m-i>=1 && s[m-i]!="?")//找一个后面的 { r=i; temp=1; } if(temp)break; i++; } if(l==0&&l==r) { cout<<s[m]<<endl; } else if(l==r) { cout<<"middle of "<<s[m-l]<<" and "<<s[m+r]<<endl; //printf("middle of %s and %s\n",,); } else if(l>r) { int bbb=l; while(l--) cout<<"left of "; //printf("left of "); cout<<s[m+bbb]<<endl; //printf("%s\n",); } else if(r>l) { int ccc=r; while(r--) cout<<"right of "; //printf(); cout<<s[m-ccc]<<endl; // printf("%s\n",]); } } } return 0;}
HINT
阅读全文
0 0
- zcmu-1667
- ZCMU—1667
- zcmu---1667好老师
- zcmu-1657
- zcmu-1685
- ZCMU----1776
- ZCMU----1777
- ZCMU----1778
- ZCMU----1779
- ZCMU-1731
- ZCMU-1658
- ZCMU-1654
- ZCMU-1132
- ZCMU-1037
- ZCMU-1415
- ZCMU-1036
- ZCMU-1723
- ZCMU-1608
- Maven编译错误:不兼容的类型的解决方案
- Solr__luence(三)检索与创建索引的API及名词解析
- HTTP协议入门
- PHP入门(第三弹:WAMPServer自定义网站根目录)
- VIM常用命令搜集
- zcmu-1667
- (15)2017.8.17-java基础中期考核复习(1)
- 2017年8月10号提高组T2 飞行
- 知识点1:C语言中exit()与return的区别
- 笔记:ORACLE数据库基础学习 第一天
- React 虚拟DOM的理解
- Drawerlayout+ViewPager
- POJ 1679 The Unique MST 判断最小生成树是否唯一
- 二分查找法(递归+循环)