Cod sursa(job #476745)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 12 august 2010 11:57:54
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <algorithm>
using namespace std;
double panta[1<<20];
int i,j,x[1005],y[1005],n,k,total;
bool cmp(double a,double b)
{
return (a<b);
}
int main()
{
    long long particular;
    ifstream fi("trapez.in");
    ofstream fo("trapez.out");
    fi>>n;
    for(i=1;i<=n;i++)
      fi>>x[i]>>y[i];
    k=0; particular=0;
    for(i=1;i<=n;i++)
      for(j=i+1;j<=n;j++)
        {
          if(y[i]==y[j])
          particular++;
          else
          panta[++k]=(double)(x[i]-x[j])/(double)(y[i]-y[j]);

        }
    sort(panta+1,panta+k+1,cmp);
    n=0; total=0;
    for(i=1;i<=k;i++)
      for(j=i+1;j<=k and panta[i]==panta[j];j++, total++);
    total+=(particular*(particular-1))/2;
    fo<<total<<"\n";
    fo.close();
    return 0;
}