Pagini recente » Cod sursa (job #288986) | Cod sursa (job #2515423) | Cod sursa (job #68788)
Cod sursa(job #68788)
#include<fstream.h>
#include<math.h>
double a[1500],b[1500],xx,xx1,yy,yy1;
int N;
void citire(){
ifstream fin("triang.in");
fin>>N;
for (int i=0;i<N;i++)
fin>>a[i]>>b[i];
fin.close();
}
double latura(double x1,double y1,double x,double y){
double w=0;
w+=(x1-x);
w*=(x1-x);
w+=(y1-y)*(y1-y);
double f=sqrt(w);
return f;
}
void punct_trei (double L,int i,int j){
double L1=L*sqrt(3)/2;
if (a[i]-a[j]!=0)
xx=L/(a[i]-a[j])*L1+(b[i]-b[j])/2;
else
xx=0;
if (a[j]-a[i]!=0)
xx1=L/(a[j]-a[i])*L1+(b[j]-b[i])/2;
else
xx1=0;
if (b[i]-b[j]!=0)
yy=L/(b[i]-b[j])*L1+(a[i]-a[j])/2;
else
yy=+(a[i]-a[j])/2;
if (b[j]-b[i]!=0)
yy1=L/(b[j]-b[i])*L1+(a[j]-a[i])/2;
else
yy1=+(a[j]-a[i])/2;
}
int numarare (){
double L,L1,L2;
int nr=0;
for (int i=0;i<N-2;i++)
for (int j=i+1;j<N-1;j++){
L=latura(a[i],b[i],a[j],b[j]);
punct_trei(L,i,j);
for (int y=j+1;y<N;y++){
if (b[y]+0.1>=xx&&b[y]-0.1<+xx&&a[y]+0.1>=yy&&a[y]-0.1<=yy)
nr++;
else
if ((b[y]+0.1)>=xx1&&(b[y]-0.1)<=xx1)
if (a[y]+0.1>=yy1&&a[y]-0.1<=yy1)
nr++; }}
return nr;
}
int main(){
citire();
ofstream fout("triang.out");
fout<<numarare();
fout<<"\n";
fout.close();
return 0;
}