小学nb2012-1傻瓜电梯帕斯卡

类型

记录=记录

t,s,e:整数

结束;

增值转销公司

arr:array[1..100]?的?rec

n,x,I,时间:整数;

程序?qs(l,r:整数);

定义变量

I,j,x:整数;

tmp:rec;

开始

I:= l;

j:= r;

x:=arr[(l+r)?div?2].t;

重复

什么时候?(我& ltr)?然后呢。(arr[i]。t & ltx)?做什么?inc(一);

什么时候?(j & gtl)?然后呢。(arr[j]。t & gtx)?做什么?第十届会议;

如果?我& lt=j?然后

开始

tmp:= arr[I];

arr[I]:= arr[j];

arr[j]:= tmp;

inc(一);

第十届会议

结束

直到?我& gtj;

如果?我& ltr?然后呢?qs(i,r);

如果?l & ltj?然后呢?qs(l,j)

结束;

开始

assign(输入,' dianti . in ');

赋值(output,' dianti . out ');

复位(输入);

重写(输出);

readln(x,n);

为了什么?我:=1?去哪?n?做

开始

读(arr[i]。t,arr[i]。s,arr[i]。e);

readln

结束;

qs(1,n);

时间:= 0;

为了什么?我:=1?去哪?n?做

开始

如果?x & lt& gtarr[i]。s?然后

时间:=time+abs(x-arr[i]。s)* 3+6;

time:=time+abs(arr[i]。s-arr[i]。e)* 3+6;

如果?我& ltn?然后

如果?arr[i+1]。t & gt时间?然后

时间:=arr[i+1]。t;

x:=arr[i]。e

结束;

writeln(时间);

关闭(输入);

关闭(输出)

这个问题我用的是模拟的方法,希望能帮到你。