神秘大三角 洛谷P1355 叉積)

2021-08-14 09:17:49 字數 1549 閱讀 1184

判斷乙個點與已知三角形的位置關係。

輸入格式:

前三行:每行乙個座標,表示該三角形的三個頂點

第四行:乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係

(詳見樣例)

所有座標值均為整數。

輸出格式:

若點在三角形內(不含邊界),輸出1;

若點在三角形外(不含邊界),輸出2;

若點在三角形邊界上(不含頂點),輸出3;

若點在三角形頂點上,輸出4。

輸入樣例#1:

(0,0)

(3,0)

(0,3)

(1,1)

輸出樣例#1:

1

var

x,y:array[1..4] of longint;

i,j,k,l,n,m,x0,y0:longint;

procedure init;

vars,ss:string;

i,len,k:longint;

begin

for i:=1 to 4 do

begin

readln(s);

delete(s,1,1);

k:=pos(',',s);

ss:=copy(s,1,k-1);

val(ss,x[i]);

delete(s,1,k);

len:=length(s);

ss:=copy(s,1,len-1);

val(ss,y[i]);

end;

x0:=x[4];

y0:=y[4];

end;

procedure main;

vari,j,k,max,ans:longint;

s1,s2,s3:longint;

begin

for i:=1 to 3 do

if (x0=x[i]) and (y[i]=y0) then

begin

writeln('4');

exit;

end;

ans:=abs((x[2]-x[1])*(y[3]-y[1])-(x[3]-x[1])*(y[2]-y[1]));

s1:=abs((x[1]-x0)*(y[2]-y0)-(x[2]-x0)*(y[1]-y0));

s2:=abs((x[1]-x0)*(y[3]-y0)-(x[3]-x0)*(y[1]-y0));

s3:=abs((x[2]-x0)*(y[3]-y0)-(x[3]-x0)*(y[2]-y0));

if (s1=0) or (s2=0) or (s3=0) then

begin

writeln('3');

exit;

end;

max:=s1+s2+s3;

if ans=max then writeln('1');

if max>ans then writeln('2');

end;

begin

init;

main;

end.

洛谷 P1355 神秘大三角

判斷乙個點與已知三角形的位置關係。若點在三角形內 不含邊界 輸出1 若點在三角形外 不含邊界 輸出2 若點在三角形邊界上 不含頂點 輸出3 若點在三角形頂點上,輸出4。非常簡單,只要你會 1.讀入,因為有括號,所以我只能先用字串讀,然後慢慢轉成數字。這一步注意,不要忘記資料裡有三位數,要打好相應的 ...

洛谷P1355 神秘大三角

題目描述 判斷乙個點與已知三角形的位置關係。輸入輸出格式 輸入格式 前三行 每行乙個座標,表示該三角形的三個頂點 第四行 乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係 詳見樣例 所有座標值均為整數。輸出格式 若點在三角形內 不含邊界 輸出1 若點在三角形外 不含邊界 輸出2 若點在三角形邊...

洛谷 P1355 神秘大三角 計算幾何基礎

p1355 神秘大三角 題目提供者yeszy 標籤 福建省歷屆夏令營 難度 普及 提高 題目描述 判斷乙個點與已知三角形的位置關係。輸入輸出格式 輸入格式 前三行 每行乙個座標,表示該三角形的三個頂點 第四行 乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係 詳見樣例 所有座標值均為整數。輸出...