Cod sursa(job #2672114)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 13 noiembrie 2020 09:04:21
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define int long long

using namespace std;

ifstream fin("trapez.in");
ofstream fout("trapez.out");

int32_t main() {
	int N;
	fin >> N;
	vector < int > x(N), y(N);
	vector < double > a;
	int q = 0;
	for(int i = 0; i < N; ++i) {
		fin >> x[i] >> y[i];
		for(int j = 0; j < i; ++j) {
            if(y[j] == y[i]) {
                ++q;
                continue;
            }
            a.emplace_back((double)(x[i] - x[j]) / (y[i] - y[j]));
		}
	}
	sort(a.begin(), a.end());
	int K = a.size(), ans = 0;
	for(int i = 0; i < K - 1; ++i)
		for(int j = i + 1; a[i] == a[j] && j < K; ++j, ++ans);
	ans += q * (q - 1) / 2;
	fout << ans;
}