JZOJ 2112——纪中食堂

题目描述

纪中的食堂是十分热闹的,当然那都是拥挤的缘故了(^__^)。但纪中学生是好孩子,都会自觉排队打饭,而每个人打饭都要消耗时间。在K个人的队伍中,第i个人打饭的时间为Ti。由于每个窗口同一时间只能服务一个同学,所以后面的同学都得等着。在示范性高中评估那天,专家们也来到了学生食堂就餐。在专家来到食堂之前,同学们都已经来到了食堂。为了给专家们对纪中人有个好的评价,同学们所排的队伍一定要让专家们尽快吃上午餐(专家们当然不会插队,也不会接受同学们的礼让,他们一定会等排在前面的同学打完饭后再打饭)。人都有主观认识,专家觉得久等了,是因为全部同学等待的长了,所以同学们等待的时间总和越小,专家越快吃上饭。
现在你的任务就是确定能让专家们尽快吃上饭的排队方案。

输入

第一行一个整数K(1<=K<=300),表示排在专家们的学生的人数。
第二行以后为K个正数,每行十个数表示从1号到K号的学生的打饭时间,T1,T2,……Tk.(0

var
    b:array[0..301] of longint;
    a:array[0..301] of real;
    i,j,n:longint;
begin
    assign(input,'canteen.in');
    reset(input);
    assign(output,'canteen.out');
    rewrite(output);
    readln(n);
    for i:=1 to n do
        begin
            read(a[i]);
            b[i]:=i;
        end;
    for i:=1 to n-1 do
        for j:=i+1 to n do
            if a[i]>a[j] then
                begin
                    a[0]:=a[i];
                    a[i]:=a[j];
                    a[j]:=a[0];
                    b[0]:=b[i];
                    b[i]:=b[j];
                    b[j]:=b[0];
                end;
    for i:=1 to n do write(b[i],' ');
    close(input);
    close(output);
end.
原文地址:https://www.cnblogs.com/Comfortable/p/8412294.html