Cod sursa(job #2842246)

Utilizator teodortatomirTeodor Tatomir teodortatomir Data 31 ianuarie 2022 14:02:49
Problema Trapez Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
#include <algorithm>
#define NMAX 1000
#define INF 2000000001
#define EPS 0.001

using namespace std;

double p[NMAX * NMAX + 1];
int vx[NMAX + 1], vy[NMAX + 1];
int main(){
  FILE *fin,*fout;
  int n, i, m, j, cnt, af;

  fin = fopen("trapez.in", "r");
  fout = fopen("trapez.out", "w");
  fscanf(fin, "%d", &n);

  for(i = 1; i <= n; i++)
    fscanf(fin, "%d%d", &vx[i], &vy[i]);
  m = 1;
  for(i = 1; i <= n; i++) {
    for(j = i + 1; j <= n; j++) {
        p[m] = (double)(vx[i] - vx[j]) / (vy[i] - vy[j]);
      m++;
    }
  }
  sort(p + 1, p + m);

  m--;
  i = 1;
  af = 0;
  while(i <= m) {
    if(i <= m && p[i + 1] == p[i]) {
      cnt = 1;
      while(i <= m && p[i + 1] == p[i]) {
        cnt++;
        i++;
      }
      af = af + (cnt - 1) * (cnt / 2);
    }
    else
      i++;
  }
  fclose(fin);

  fprintf(fout, "%d\n", af);
  fclose(fout);
  return 0;
}