trokuti

来源:互联网 发布:淘宝做什么类目好 编辑:程序博客网 时间:2024/06/14 14:01

题面1
题面2
题面3
题面4

构成三角形的三条边的斜率一定不同
枚举中间的斜率
看能构成多少三角形

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<queue>#include<vector>#include<climits>#include<string>#include<cstdlib>#include<ctime>#define MOD 1000000007#define LL long longusing namespace std;int n,i,l[300005],r[300005],cnt;LL tmp,ans;double a,b,c,k[300005];int main(){    scanf("%d",&n);    for(i=1;i<=n;i++)    {        scanf("%lf%lf%lf",&a,&b,&c);        k[i]=-a/b;    }    sort(k+1,k+n+1);    for(i=1;i<=n;i++)        if(k[i]!=k[i-1])        {            cnt++;            l[cnt]=i;            r[cnt-1]=i-1;        }    for(i=2;i<cnt;i++)    {        tmp=1ll*(l[i]-1)*(n-r[i])*(r[i]-l[i]+1);        ans+=tmp;    }    printf("%lld",ans);    return 0;}