A.数三角形

题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛Day1)/数三角形

题解:暴力枚举三元组,判断是否共线即可,用叉积

代码:

 1 type cp=record
 2      x,y:double;
 3      end;
 4 var a:array[0..200] of cp;
 5     i,j,k,n,ans:longint;
 6 function cross(a,b,c:cp):double;
 7  begin
 8    cross:=(b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
 9  end;
10 procedure init;
11  begin
12    readln(n);
13    for i:=1 to n do readln(a[i].x,a[i].y);
14  end;
15 procedure main;
16  begin
17    ans:=0;
18    for i:=1 to n do
19     for j:=i+1 to n do
20      for k:=j+1 to n do
21       begin
22       if cross(a[i],a[j],a[k])<>0 then inc(ans);
23       end;
24    writeln(ans);
25  end;
26 
27 begin
28   init;
29   main;
30 end.                         
View Code

相关文章: