维修任务 在一条商业街上,有 100个店铺,店铺从左到右编号为 1 到 100。工人从店铺 x 移动到 y 发生的移动距离为 ∣y - x∣。 现在需要完成 n 个修理任务。其中第 i 个任务要求工人移动到店铺 ai,报修任务分两类,用 L 表示任务分配给小李,用 R 表示任务分配给小任。必须按照报修的顺序来完成这些任务。 请计算,完成所有修理任务后,两位工人的总移动的总距离。工人最开始的位置可以按照最理想的情况安排。 时间限制:1000ms,内存限制:256MB 输入格式 第一行:一个整数 n,表示搬运次数; 接下来 n 行,每行一个整数 ai 表示商店位置,一个字符 Si 表示哪位工人完成。 输出格式 输出所有任务完成时的最小总距离。 输入样例#1 4 3 L 6 R 9 L 2 R 输出样例#1 10 输入样例#2 3 2 L 2 L 99 L 输出样例#2 97 输入样例#3 8 22 L 75 L 26 R 45 R 72 R 81 R 47 L 29 L 输出样例#3 154 数据范围: 1≤N≤100,1≤ai≤100,si∈{L, R}。
正确答案:参考程序(Python):n=int(input());L=R=0;la=lb=0;ans=0;for _ in range(n):ai=input().split();a=int(ai[0]);c=ai[1];if c=='L':ans+=abs(a-la);la=a else:ans+=abs(a-lb);lb=a;print(ans)。样例→10、97、154。核心:两位工人距离累加。
试卷来源:202509 青少年等级考试C/C++真题二级