Pagini recente » Cod sursa (job #204088) | Cod sursa (job #1604943) | Cod sursa (job #1900806) | Cod sursa (job #2897364) | Cod sursa (job #717812)
Cod sursa(job #717812)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
vector <double> p;
long long n,nr=0,ct=0,ct1=0,ct2=0;
double x[1001],y[1001],k=0;
int main(){
ifstream fin("trapez.in");
fin >>n;
for (int i=0;i<n;i++){
fin >> x[i]>>y[i];
}
fin.close();
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if((x[i]==x[j])||(y[i]==y[j])){
if(x[i]==x[j])ct1++;
if(y[i]==y[j])ct2++;
}else{
p.push_back((y[i]-y[j])/(x[i]-x[j]));
}
}
}
if (ct1!=0)nr+=ct1*(ct1-1)/2;
if (ct2!=0)nr+=ct2*(ct2-1)/2;
sort(p.begin(),p.end());
int l=p.size();
k=p[0];
ct++;
for (int i=1;i<l;i++){
if (k!=p[i]){
k=p[i];
nr+=ct*(ct-1)/2;
ct=1;
}else ct++;
}
/*for (int i=0;i<l-1;i++){
for(int j=i+1;j<l;j++){
if((p1[i]*p2[j])==(p2[i]*p1[j]))nr++;
}
}*/
ofstream fout("trapez.out");
fout << nr;
fclose(stdout);
return 0;
}