Cod sursa(job #2405244)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 14 aprilie 2019 11:06:41
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define x first
#define y second

using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");

int N, K, sol;
double th[1000003];
pair<double, double> a[1003];

int main() {

   f >> N;
   for(int i = 1; i <= N; i++)
      f >> a[i].x >> a[i].y;

   for(int i = 1; i <= N; i++) {
      for(int j = i + 1; j <= N; j++) {
         th[++K] = -1;
         if(a[i].x != a[j].x) {
            th[K] = (a[i].y - a[j].y) / (a[i].x - a[j].x);
         }
      }
   }
   sort(th + 1, th + K + 1);


   int i;
   for(i = 1; i <= K && th[i] == -1; i++);
   int lg = 0;
   for( i++; i <= K; i++) {
      if(th[i] != th[i - 1]) {
         sol += lg * (lg + 1) / 2;
         lg = 0;
      } else lg++;
   }

   g << sol << "\n";
   return 0;
}