ac1339.pas

来自「Ural(Acm.timus.ru)题解 By Maigo大牛」· PAS 代码 · 共 36 行

PAS
36
字号
program ural1339;
const
  maxk=1000000;
var
  a,b:array[0..maxk]of longint;
  k,i,girl,t:longint;
begin
  read(k);
  for i:=1 to k do read(a[i]);
  for i:=1 to k do read(b[i]);
  for i:=1 to k do b[a[i]]:=-b[a[i]];

  for i:=1 to k do
    if b[i]>0 then begin
      girl:=i;b[i]:=-b[i];
      repeat
        t:=a[-b[girl]];
        a[-b[girl]]:=girl;
        girl:=t;
      until b[girl]=0;
    end;

  for i:=1 to k do
    b[a[i]]:=maxlongint;
  girl:=0;
  for i:=1 to k do begin
    if a[i]>0 then
      write(a[i])
    else begin
      repeat inc(girl);until b[girl]<maxlongint;
      write(girl);
    end;
    if i<k then write(' ') else writeln;
  end;
end.

⌨️ 快捷键说明

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