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

📄 ex.dpr

📁 tongji acm-online judge solution
💻 DPR
字号:
program Ural_1046(Input,Output);
const
	MaxN=50;
type
	TIndex=Longint;
	TData=Extended;
	TPoint=record
		x,y:TData;
	end;
	TExpression=array[1..MaxN+1]of record
		x,y:record
			A,B,C:TData;
		end;
	end;
	TPointSet=array[1..MaxN]of TPoint;
var
	N:TIndex;
	Z,M:TPointSet;
	A:TExpression;
	
function Solve(A1,B1,C1,A2,B2,C2:TData):TPoint;
begin
	Result.x:=(C2*B1-C1*B2)/(A1*B2-B1*A2);
	Result.y:=(C1*A2-C2*A1)/(A1*B2-B1*A2);
end;
procedure Main;
var
	i:TIndex;
	T:TData;
	P:TPoint;
begin
	Readln(N);
	for i:=1 to N do
		Readln(M[i].x,M[i].y);
	for i:=1 to N do
	begin
		Readln(T);
		Z[i].x:=Cos(T*Pi/180);
		Z[i].y:=Sin(T*Pi/180);
	end;
	A[1].x.A:=1;
	A[1].x.B:=0;
	A[1].x.C:=0;
	A[1].y.A:=0;
	A[1].y.B:=1;
	A[1].y.C:=0;
	for i:=1 to N do
	begin
		A[i+1]:=A[i];
		A[i+1].x.A:=A[i].x.A*Z[i].x-A[i].y.A*Z[i].y;
		A[i+1].x.B:=A[i].x.B*Z[i].x-A[i].y.B*Z[i].y;
		A[i+1].x.C:=(A[i].x.C-M[i].x)*Z[i].x-(A[i].y.C-M[i].y)*Z[i].y;
		A[i+1].y.A:=A[i].x.A*Z[i].y+A[i].y.A*Z[i].x;
		A[i+1].y.B:=A[i].x.B*Z[i].y+A[i].y.B*Z[i].x;
		A[i+1].y.C:=(A[i].x.C-M[i].x)*Z[i].y+(A[i].y.C-M[i].y)*Z[i].x;
		A[i+1].x.C:=A[i+1].x.C+M[i].x;
		A[i+1].y.C:=A[i+1].y.C+M[i].y;
	end;
	P:=Solve(A[N+1].x.A-1,A[N+1].x.B,A[N+1].x.C,A[N+1].y.A,A[N+1].y.B-1,A[N+1].y.C);
	for i:=1 to N do
		Writeln(A[i].x.A*P.x+A[i].x.B*P.y+A[i].x.C:0:0,' ',A[i].y.A*P.x+A[i].y.B*P.y+A[i].y.C:0:0);
end;
begin
	Main;
end.

⌨️ 快捷键说明

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