下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、石器时代 (交互式)(stoneage)【背景描述】借助月光宝盒,HURRICANE 小组的成员们来到了石器时代。在热闹的石器时代广场上,不同部落的原始人来来往往进进出出。但是,石器时代是非常容易爆发的。爆发时,总是处于绝对优势地位的部落获胜。某一时刻一个部落在广场上有“绝对优势”指的是该时刻在广场上此部落的人数比其他部落的人数之和还要多。出于安全考虑,HURRICANE 小组的成员都非常迫切的希望知道的 HURRICANE 小组目前在广场上哪个部落有绝对优势。但非常不幸的是成员们只能判断两个原始人是不是属于一个部落。你的任务就是协助HURRICANE 小组!【任务描述】这是一道交互式的题目,
2、你的程序需要和交互库交互并按照所有库函数的调用:的约定完成你需要在执行任何其他的操作之前初始化交互库; 然后通过调用库函数来完成你对数据的输入及处理;最后你需要将所有交互库需要的信息返回并推出程序。【交互方式】(库函数)提供的交互库中包括了如下的函数,现将它们的功能说明如下: init:初始化函数。只能且必须在调用其它函数前调用,且仅能被调用一次。调用后石器时代广场被清空,且同时完成交互库的初始化工作。getjob:你应当调用该函数来获取你的程序下一步要做的工作。本函数返回值作如下约定:对一个正整数 i:表示第 i 个进入广场原始人离开了广场;0:表示有一个原始人进入了广场;-1:表示 HUR
3、RICANE 小组希望知道当前广场上哪个部落有绝对优势。在下一次调用本函数前你必须调用且仅调用一次 answer 函数作为回答;-2:表示任务完成。在此后不应该有任何其他库函数调用。你的程序应该马上退出。并且约定进入广场的原始人总数不超过 1000000;query(i, j):调用 init 以后的任何时候你都可以调用本函数。本函数用作测试第 i 个进入广场的和第 j 个进入广场的原始人是不是属于同一个部落,返回 1 表示属于同一部落,否则返回 0。注意你必须保证它们至少进入过广场,否则约定返回-1。answer(i):i 是你的回答。如果目前有部落处于绝对优势地位,则第 i个入场的原始人应
4、该属于该部落并且仍然在场上(i 可以是他们中任何一个的入场序号);如果目前任何一个部落都没有绝对优势,i 应该为 0。【交互样例】调用 init getjobgetjob query(1,2) getjob answer(0) getjob getjobquery(3,2)返回 N/A 000-1N/A 0-11解释程序初始化,石器时代广场上一个人也没有。原始人A 第一个进入广场。原始人B 第二个进入广场。查询原始人A 和B,发现他们不属于同一个部落。询问:当前存在占绝对优势的部落吗?显然不存在。以 0 作为回答。原始人C 第三个进入广场。再次询问是否存在占绝对优势的部落。 查询C 和B,发现
5、他们属于同一个部落。3 和 2 都是占绝对优势的部落的成员,回答其中任何一个即可。原始人B 离开了广场。再次询问。当前不存在占绝对优势的部落。原始人A 离开了广场。得到可以退出的标志,任务完成,程序退出。answer(3)N/Agetjob getjob answer(0) getjobgetjob2-1N/A 1-2【测试说明】你应该写一个输入文件stoneage.in,每一行包含一条指令,为下面中的一个:大写字母I 接空格再接一个整数 m 表示放入广场一个属于第 m 号部落的原始人;大写字母M 表示查询当前有没有处于绝对优势的部落;大写字母 D 接空格再接一个整数 m 表示第 m 个进入广
6、场的原始人离开了;最后一行应该仅包含一个大写的字母E,表示输入文件的结束。运行程序时测试库会生成stoneage.log你的程序的每一次对库函数的调用。stoneage.log 会忠实你的程序的调用,即使它们是的。你应该根据stoneage.log 来判断你的程序的正确性。【语言相关的说明】对于使用 PASCAL 的选手来说,数定义:提供的stonelib.ppu 单元包括如下的函procedure init;function getjob:long;function query(i,j:longprocedure answer(ans:long):);eger;你可以通过uses stonelib;语句来使用这个单元并调用其中的函数。对于使用 C/C+的选手来说,提同的 stonelib.h/.o 库包括如下的函数定义:void init(); long getjob();query(long i,long j);void answer(long ans);你可以通过#include “stonelib.h”预编译指令来包括这个头文件并使用并调用其中的函数。【运行限制】【评分方法】本题目一共有十个测试点,每个测试点的分数为总分数的 10%。在你的对每个测试点进行运行的时候,如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版企业清算注销及税务筹划合同3篇
- 二零二五版供配电设施安全风险评估与治理合同3篇
- 二零二五版锅炉安装与能源审计服务合同范本3篇
- 二零二五版阿拉尔经济技术开发区绿色建筑推广应用合同3篇
- 二零二五版高职高专土建专业校企合作项目合同3篇
- 二零二五版二手车买卖纠纷处理合同3篇
- 二零二五版公益项目合同担保法合规合同3篇
- 二零二五版专业打印设备升级与维护服务合同2篇
- 二零二五版电子商务平台食品农产品溯源合同3篇
- 二零二五版建筑材料租赁合同质量检测与验收标准合同3篇
- 2025年工程合作协议书
- 2025年山东省东营市东营区融媒体中心招聘全媒体采编播专业技术人员10人历年高频重点提升(共500题)附带答案详解
- 2025年宜宾人才限公司招聘高频重点提升(共500题)附带答案详解
- KAT1-2023井下探放水技术规范
- 驾驶证学法减分(学法免分)题库及答案200题完整版
- 竣工验收程序流程图
- 清华经管工商管理硕士研究生培养计划
- 口腔科诊断证明书模板
- 管沟挖槽土方计算公式
- 国网浙江省电力公司住宅工程配电设计技术规定
- 烟花爆竹零售应急预案
评论
0/150
提交评论