讨论 / 为什么有2点过不了
auroral 2012-01-28 16:38:00
点我顶贴 收藏 删除
program ex80;

var

n,i,j,m,t:integer;

k,b:array[1..200] of longint;

x,y:array[1..10000] of extended;

pan:array[1..10000] of boolean;

begin

fillchar(pan,sizeof(pan),true);

readln(n);

for i:=1 to n do

readln(k[i],b[i]);

m:=0;

for i:=1 to n-1 do

for j:=i+1 to n do

if k[i]-k[j]<>0 then

begin

inc(m);

x[m]:=(b[j]-b[i])/(k[i]-k[j]);

y[m]:=(k[i]*b[j]-k[j]*b[i])/(k[i]-k[j]);

end;

if m=0 then begin writeln('No Fire Point.'); halt; end;

for i:=1 to m-1 do

for j:=i+1 to m do

if (x[i]=x[j])and(y[i]=y[j]) then dec(m);

writeln(m);

end.

#1 qyk130@2010-11-01 00:42:00
回复 删除
我也有两个点过不了。。。 泪目
#2 zhouyi@2011-10-29 00:10:00
回复 删除
自己做,别看别人的,别指望别人。要是这是考试咋办?自己做,不然就没意义了,那做它干吗?看别人,指望别人有啥好处?不就是个排名吗?我排名不高,但我诚实守信!!!!
#3 怡红公子@2012-01-28 16:38:00
回复 删除
有误差

#define xs 0.00001

x1=(b[i]-b[j])/(k[j]-k[i]);

y1=(k[i]*x1+b[i]+k[j]*x1+b[j])/2;

for(l=1;l<=ans;l++)

if(x[l]-x1>=-xs&&x[l]-x1<=xs&&y[l]-y1<=xs&&y[l]-y1>=-xs)

return 1;

查看更多回复
提交回复