ACM-FZUoj2009-1573解题报告

来源:互联网 发布:什么是seo和sem 编辑:程序博客网 时间:2024/04/27 21:15

新浪博客 发表时间 -- 2009-07-27 20:13:25

大学自习室

  算法:

       这道题我做了好久....一直被误导着ACM-FZUoj2009-1573解题报告....题目要求找座位,找出Roam满足的座位,给出了三个条件..

  1. 旁边有另一个空座位,可以是左边,也可以是右边(放书包用的...);
  2. 为了环境相对稳定,满足要求1的同时,Roam的座位必须是离两边过道最远的;
  3. 在教室的最后一排 (-__-!)。

然后有约定了几个条件:

  1. 只考虑教室最后一排中间部分的座位,两边就是过道;
  2. 每个座位都有一个编号,若有N(1<=N<=50)个座位,则座位编号从左到右依次为 0,1,2,…,N-1.
  3. 输入数据使用一个长度等于座位数的字符串 Seat 表示,字符串中的每一个字符对应一个座位的状态,其中的E(大写字母)表示座位没人,P(大写字母)表示座位已经有人了。

  

数据输入

输入包括多组数据。
每组数据输入数据的第一行是一个数字N,(1<=N<=50),表示该教室最后一排有N个座位。第二行是一个字符串,表示字符串seat。

输出数据

对于每组输出数据,输出只有一行,即为你所找到的座位的编号。如果有多个符合条件的座位,则仅输出其中编号最小的那个。

  • 如果有多个符合条件的座位,则仅输出其中编号最小的那个;
  • 如果不存在这样的座位,输出-1。

算法:

    1.先用数组接收字符串,再把数组赋给已赋初值的的数组,存储接收的字符。。。

    2.以座位旁必须有空座位为条件(我就是被这个给害的,当只有‘E’时也输出0了,但它应该输出的是-1),当数组里有两个相邻元素都为‘E’时,就把为‘E’的两个位置记录下来,分别存放到另一个数组,数组下标对应位置值。。

    3.设置一个变量p=0,来和前面出现‘E’的位置一起与中点相减取绝对值比较,即fabs(b[i]-(k-1)/2)<fabs(p-(k-1)/2),k为数组长度,p就是变量了,如果为真的话就把p=b[i],然后输出p..

   4.特殊情况,当测试数据为‘E’'E'时要输出0..

代码:

   暂时存起来...有需要的朋友给我留言.....

原创粉丝点击