请编写c语言代码实现以下问题新建的思源楼高达200层,构成了交大新的地标。楼里面有一部可以通达所有楼层的电梯,每上一层楼需要 u u秒钟,下一层楼需要 d d秒,每个楼层会停 s s秒。目前电梯在第 N ( 1 ≤ N ≤ 200 ) N(1≤N≤200)层的地面上。若某个楼层没有上下需求,则电梯运行中会跳过该楼层。电梯沿某个方向运行到该方向最后一个需要上下人的楼层后,若下方或上方没有请求但另一方方向有用梯需求,则转向运行。若电梯不需要上下运行,则会忽略该请求。 现有若干个楼层需要上下人,则满足这些请求最少需要耗费多长时间(包括最后的停留时间)? 输入 输入数据有若干组(最多不超过1000组),每组数据的第一行为四个如题目中所示的整数 N , u , d , s N,u,d,s,由空格分隔开。第二行为不同楼层需要上下楼的请求, 最多不超过1000个。每个请求的格式为"from-to",其中"from"和"to"为所在楼层和要到达的楼层,保证 f r o m ≠ t o from =to。 输出 对每组测试数据,在单独的行中输出结果。先输出当前测试样例的组号Case c:,c为样例编号,从1开始。随后在同一行中输出满足这些请求最少需要消耗的时间。 示例输入 1 6 4 5 1-3 2-3 5-6 8-10 5-4 2 6 4 5 1-3 2-3 5-6 8-10 5-4 11 6 4 5 1-3 2-3 5-6 8-10 5-4 7 6 4 5 1-3 2-3 5-6 8-10 5-4 8 6 4 5 1-3 2-3 5-6 8-10 5-4 8 6 4 5 1-3 2-3 5-6 8-10 5-4 2-3 1-3 示例输出 Case 1: 118 Case 2: 127 Case 3: 139 Case 4: 123 Case 5: 118 Case 6: 118
时间: 2024-03-19 08:40:10 浏览: 197
由于对输入数据进行了分组,需要使用循环读入数据,同时统计样例编号。因为需要维护电梯在运行过程中的状态,可以使用一个变量表示当前电梯所在的楼层,以及一个变量表示电梯当前的运行方向。对于每个请求,可以判断其所在楼层和目标楼层的大小关系,然后根据运行方向来更新电梯的状态。最后统计电梯运行的总时间即为答案。
以下是代码实现:
阅读全文