Pagini recente » Cod sursa (job #1793642) | Cod sursa (job #1021430) | Cod sursa (job #1005962) | Cod sursa (job #1427211) | Cod sursa (job #3351162)
#include <bits/stdc++.h>
using namespace std;
const long long max_size = 3e5 + 20;
pair <long long, long long> v[max_size];
bool cmp (pair <long long, long long> x, pair <long long, long long> y)
{
return x.second * y.first < x.first * y.second;
}
void solve ()
{
long long n;
cin >> n;
for (long long i = 1; i <= n; i++)
{
cin >> v[i].first >> v[i].second;
}
vector <pair <long long, long long>> pante;
for (long long i = 1; i <= n; i++)
{
for (long long j = i + 1; j <= n; j++)
{
pante.push_back({v[j].second - v[i].second, v[j].first - v[i].first});
}
}
sort(pante.begin(), pante.end(), cmp);
long long ans = 0, lg = 1;
for (long long i = 1; i < pante.size(); i++)
{
if (pante[i].first * pante[i - 1].second != pante[i].second * pante[i - 1].first)
{
ans += lg * (lg - 1) / 2;
lg = 1;
}
else
{
lg++;
}
}
ans += lg * (lg - 1) / 2;
cout << ans;
cout << '\n';
}
signed main()
{
#ifdef LOCAL
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#else
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
#endif // LOCAL
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
long long tt;
tt = 1;
//cin >> tt;
while (tt--)
{
solve();
}
return 0;
}