Pagini recente » Clasament simulare-cartita-18b | Cod sursa (job #280221) | Cod sursa (job #2345054) | Cod sursa (job #2446383) | Cod sursa (job #2481811)
#include <bits/stdc++.h>
using namespace std;
ifstream f ( "trapez.in" ); ofstream g ( "trapez.out" );
pair < long double ,long double > v[1005];
vector <long double> unghi;
int main()
{ int n;
f>>n;
for(int i=1;i<=n;i++) f>>v[i].first>>v[i].second;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{ if(v[i].first == v[j].first) unghi.push_back((2e9 + 2));
else unghi.push_back((v[i].second-v[j].second)/(long double)(v[i].first-v[j].first));
}
sort(unghi.begin(),unghi.end());
long long ans=0,cnt=1;
unghi.push_back(0);
for(int i=0;i<unghi.size()-1;i++)
{ if(unghi[i]==unghi[i+1]) cnt ++;
else
{ ans+=cnt*(cnt-1)/2;
cnt=1;
}
}
g<<ans;
return 0;
}