⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 标程.pas

📁 ACM中班级排名
💻 PAS
字号:
{
  请把Li Ming改成JLY,为了尊重原版还是把这个放上去了
}


type
  rec=record
      t:string[30];
      s:integer;
    end;
var
  l,o:array[1..10000] of rec;
  i,j,n,m,v,c,p,r,h,len,z:integer;
  q:string;
procedure quicksort(h,t:integer);
var
  i,j:integer;
  x:rec;
begin
  i:=h;
  j:=t;
  x:=o[i];
  while i<j do
    begin
      while (o[j].t>=x.t)and(j>i) do dec(j);
      if j>i then
        begin
          o[i]:=o[j];
          inc(i);
        end;
      while (o[i].t<=x.t)and(i<j) do inc(i);
      if i<j then
        begin
          o[j]:=o[i];
          dec(j);
        end;
      o[i]:=x;
    end;
  if h<(i-1) then quicksort(h,i-1);
  if (i+1)<t then quicksort(i+1,t);
end;
procedure find(s,e:integer);
var
  i,j,y:integer;
begin
  if s=e then
    begin
      z:=s;
      exit;
    end;
  y:=s+(e-s+1) div 2;
  if o[y].t<q then find(y+1,e)
  else if o[y].t>q then find(s,y-1)
  else find(y,y);
end;
begin
  while not eof do
    begin
      readln(n);
      for i:=1 to n do
        begin
          readln(l[i].t);
          if l[i].t='JLY' then h:=i;
          l[i].s:=0;
          o[i].t:=l[i].t;
          o[i].s:=i;
        end;
      quicksort(1,n);
      readln(m);
      for i:=1 to m do
        begin
          for j:=1 to n do
            begin
              readln(q);
              p:=pos(' ',q);
              val(copy(q,1,p-1),v,c);
              q:=copy(q,p+1,length(q)-p);
              find(1,n);
              inc(l[o[z].s].s,v);
            end;
          r:=1;
          for j:=1 to n do
            if l[j].s>l[h].s then inc(r);
          writeln(r);
        end;
    end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -