CSU 1334: 好老师(数学啊 湖南省第九届大学生计算机程序设计竞赛)
来源:互联网 发布:angularjs.min.js.map 编辑:程序博客网 时间:2024/05/20 05:46
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1334
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
HINT
Source
湖南省第九届大学生计算机程序设计竞赛
代码如下:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#include <vector>using namespace std;string s;vector<string> vv;int main(){int n, m;int i, j;while(~scanf("%d",&n)){vv.clear();for(i = 0; i < n; i++){cin >> s;vv.push_back(s);}scanf("%d",&m);int tt, l;int flag1, flag2;for(i = 0; i < m; i++){scanf("%d",&tt);flag1 = flag2 = 0;if(vv[tt-1] != "?"){cout<<vv[tt-1]<<endl;continue;}int k = 0;for(j = 0; ; j++){k++;int t1 = tt-k-1;int t2 = tt+k-1;if(t1>=0 && vv[t1]!="?"){flag1 = 1;}if(t2 < n && vv[t2]!="?"){flag2 = 1;}if(flag1 && flag2)//中间{cout<<"middle of "<<vv[t1]<<" and "<<vv[t2]<<endl;break;}else if(flag1 && !flag2)//右边{for(l = 0; l < k; l++){cout<<"right of ";}cout<<vv[t1]<<endl;break;}else if(!flag1 && flag2)//左边{for(l = 0; l < k; l++){cout<<"left of ";}cout<<vv[t2]<<endl;break;}}}}return 0;}/*10A c v ? ? ? ? H f g5056789*/
1 0
- CSU 1334: 好老师(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- 好老师 (湖南省第九届大学生计算机程序设计竞赛)
- CSU 1337: 搞笑版费马大定理(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- 湖南省第九届大学生计算机程序设计竞赛 好老师
- CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1336: Interesting Calculator(BFS啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1339: 最后一滴血(模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1803 2016 (数学)【2016年湖南省第十二届大学生计算机程序设计竞赛 - A】
- 湖南省第九届大学生计算机程序设计竞赛
- Interesting Calculator( 湖南省第九届大学生计算机程序设计竞赛)
- 【模拟】【数学】CSU 1803 2016 (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
- CSU 1335: 高桥和低桥(树状数组啊 二分查找啊 湖南省第九届大学生计算机程序设计竞赛)
- 湖南省第九届大学生计算机程序设计竞赛 字符识别?
- 湖南省第九届大学生计算机程序设计竞赛 搞笑版费马大定理
- 湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
- 湖南省第九届大学生计算机程序设计竞赛 近似回文词
- 第13周项目1-数组大折腾-(1)
- 第十三周项目四数组的排序(1)
- 产品经理一定要看看:好的产品经理是怎样炼成的
- MyEclipse安装后需要进行的配置
- BSTR 的内存分配和释放
- CSU 1334: 好老师(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- Linux Namespaces机制
- 堆栈和堆
- 好的产品经理要至少具备这4个条件!
- MinGW 编译出现g++: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found错误的解决方法
- IOS7开发~Xcode5制作framework
- 第十三周oj平台项目三
- CSU 1337: 搞笑版费马大定理(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- bzoj 2190: [SDOI2008]仪仗队