Cod sursa(job #2844919)

Utilizator albertaizicAizic Albert albertaizic Data 6 februarie 2022 11:22:25
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAX 1000
#define inf 1.79769e+308

using namespace std;


struct punct{
  int x;
  int y;
};
punct v[MAX];
double p[MAX*MAX];

int main(){
  FILE *fin,*fout;
  int n,i,j,nr,s,t;
  double p1;
  fin=fopen("trapez.in","r");
  fscanf(fin,"%d",&n);
  for(i=0;i<n;i++)
    fscanf(fin,"%d%d",&v[i].x,&v[i].y);
  fclose(fin);
  nr=0;
  for(i=0;i<n;i++){
    for(j=i+1;j<n;j++){
      if(v[j].x-v[i].x!=0)
        p[nr]=(double)(v[j].y-v[i].y)/(v[j].x-v[i].x);
      else
        p[nr]=inf;
      nr++;
    }
  }
  sort(p,p+nr);
  i=t=0;
  while(i<nr){
    s=0;
    p1=p[i];
    while(p[i]==p1){
      s++;
      i++;
    }
    t+=s*(s-1)/2;
  }

  fout=fopen("trapez.out","w");
  fprintf(fout,"%d",t);
  fclose(fout);
  return 0;
}