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

📄 ex3.dpr

📁 tongji acm-online judge solution
💻 DPR
字号:
program Ural_1291(Input,Output);
const
	MaxN=1000;
type
	TIndex=Longint;
	TAdjoint=array[1..MaxN,1..MaxN+1]of TIndex;
	TNode=array[1..MaxN]of record
		Used:Boolean;
		Cog:TIndex;
		Numer,Denom:TIndex;
	end;
var
	N:TIndex;
	Adjoint:TAdjoint;
	Node:TNode;
function GCD(A,B:TIndex):TIndex;
var
	R:TIndex;
begin
	if B>A then
	begin
		R:=A;
		A:=B;
		B:=R;
	end;
	while B>0 do
	begin
		R:=A mod B;
		A:=B;
		B:=R;
	end;
	Result:=A;
end;
procedure Calc(i,j:TIndex);
var
	D:TIndex;
begin
	Node[j].Numer:=-Node[i].Numer*Node[i].Cog;
	Node[j].Denom:=Node[i].Denom*Node[j].Cog;
	D:=GCD(Abs(Node[j].Numer),Node[j].Denom);
	Node[j].Numer:=Node[j].Numer div D;
	Node[j].Denom:=Node[j].Denom div D;
end;
procedure DFS(i:TIndex);
var
	j:TIndex;
begin
	Node[i].Used:=true;
	j:=1;
	while Adjoint[i,j]>0 do
	begin
		if not Node[Adjoint[i,j]].Used then
		begin
			Calc(i,Adjoint[i,j]);
			DFS(Adjoint[i,j]);
		end;
		Inc(j);
	end;
end;
procedure Main;
var
	i,j:TIndex;
begin
	Readln(N);
	for i:=1 to N do
	begin
		Read(Node[i].Cog);
		Node[i].Numer:=0;
		Node[i].Denom:=1;
		Node[i].Used:=false;
		j:=0;
		repeat
			Inc(j);
			Read(Adjoint[i,j]);
		until Adjoint[i,j]=0;
		Readln;
	end;
	Read(i);
	Readln(Node[i].Numer);
	DFS(i);
	for i:=1 to N do
		Writeln(Node[i].Numer,'/',Node[i].Denom);
end;
begin
	Main;
end.

⌨️ 快捷键说明

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