UVA 12662(模拟)
来源:互联网 发布:自学java哪本书好 编辑:程序博客网 时间:2024/06/08 11:09
题意:问‘?’字符的位置,详情见图
题解:这里讨论不知道为什么一直错。。。。。。。。
讨论:1.当L,R,两边字符同时存在,且距离相等就输出 middle of and 。。。
2.如果有一边的距离小于另一边,或者另一边找不到字符,那么就输出 left of /right of
3.否则输出 left of /right of
这一题大概错了9次。。。。。。心累
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<set>#include<utility>using namespace std;#define inf 0x3f3f3f3f#define N 5000char s[N][10];int getpos(int n,int st,int num){for(int i=st;i<=n&&i>=1;i+=num){if(s[i][0]!='?')return i;}return -1;}int main(){#ifdef CDZSCfreopen("i.txt","r",stdin);#endifint n,x,m;while(~scanf("%d",&n)){for(int i=1;i<=n;i++){scanf("%s",s[i]);}scanf("%d",&m);while(m--){scanf("%d",&x);if(s[x][0]!='?'){printf("%s\n",s[x]);}else{int L,R;L=getpos(n,x,-1);R=getpos(n,x,1);int lgL=x-L,lgR=R-x;if(lgL==lgR&&L!=-1&&R!=-1){printf("middle of %s and %s\n",s[L],s[R]);}else if(lgL<lgR||R==-1){while(lgL--)printf("right of ");printf("%s\n",s[L]);}else{while(lgR--)printf("left of ");printf("%s\n",s[R]);}}}}return 0;}
0 0
- UVA 12662(模拟)
- UVA Palindromes(模拟)
- uva 133(模拟)
- UVA 12503(模拟)
- UVA 12504(模拟)
- uva 445 uva 489 uva 490 uva 694(模拟)
- uva 409(字符串模拟)
- UVA 101(栈模拟)
- uva 10152 ShellSort(模拟)
- UVA 305 - Joseph(模拟)
- UVA - 11291 Smeech (模拟)
- UVa 230 - Borrowers(模拟)
- UVA Automatic Poetry(模拟)
- UVa 220 - Othello(模拟)
- UVa 1592模拟(map)
- UVA - 815 Flooded!(模拟)
- UVA 10033Interpreter (模拟)
- UVA 11039(模拟,贪心)
- LVS-使用小结
- 禁止网页右键查看源代码
- Oil Deposits
- 如何设计一款优秀的软件架构
- HALCON算子描述:dev_close_window
- UVA 12662(模拟)
- tableViewiew的多余的行以及分割线
- properties文件的存取与Map键值对排序【按照value进行排序】
- 用两个栈实现一个队列
- python学习笔记
- 互联网协议入门(二)
- STAR法则
- iOS开发 https协议后获取信息失败
- java多线程—Thread.Join()和Thread.Sleep()