вторник, 26 декабря 2017 г.

Разбор 3 этапа Республиканской олимпиады по информатике 2017

Белорусская областная олимпиада 2017




Мое решение на dl.gsu.by
 Тур 1 задача 1 (FP 2.4.0)
program z1;
var N,K,i,j:longint;
S:int64;
A:array[1..2,1..100000] of longint;
B:array[1..100000] of longint; 
 
 
 procedure QSort ( first, last: longint);
   var L, R, c, X,w: longint;
   begin
      if first < last then
      begin
         X:= A[1,(first + last) div 2];
         L:= first;
         R:= last;
            while L <= R do
            begin
               while A[1,L] < X do
                  L:= L + 1;
               while A[1,R] > X do
                  R:= R - 1;
               if L <= R then
               begin
                  c:= A[1,L];w:=A[2,L];
                  A[1,L]:= A[1,R];
                  A[2,L]:= A[2,R];
                  A[1,R]:= c;
                  A[2,R]:=w;
                  L:= L + 1;
                  R:= R - 1;
               end;
           end;
        QSort(first, R);
        QSort(L, last);
     end;
  end;

begin
//vvod
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
Read(N,K);
for i:=1 to N do begin read(A[1,i]); A[2,i]:=i end;
for i:=1 to N do read(B[i]);

//sort
QSort(1,N);

// osnov
 S:=0;
  for j:=1 to k do
 begin
 i:=A[2,j];
 S:=S+(A[1,j]-B[i])
 end;

 //vivod
 rewrite(output);
 write(S);
 close(input);
 close(output);

end.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.