Pagini recente » Cod sursa (job #2507691) | Cod sursa (job #728343) | Cod sursa (job #704100) | Cod sursa (job #2612586) | Cod sursa (job #2792194)
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define ll long long
#define forq(i,ii,n)for(i=ii;i<n;i++)
using namespace std;
ifstream in("triang.in");
ofstream out("triang.out");
#define dma 0.001d
int n,i,j,e,f,o,s;double dx,dy;
struct t{double x,y;}a[1500],p;
inline constexpr bool ff(t a,t v)
{
if(a.x!=v.x)
return a.x<v.x;
else return a.y<v.y;
}
#define c e=0,f=n-1;while(e!=f)\
{\
o=(e+f)/2/*,cout<<o<<' '*/;\
if(abs(p.x-a[o].x)<dma&&abs(p.y-a[o].y)<dma){e=o;break;}\
if(ff(a[o],p))\
e=o+1;\
else f=o;\
}\
if(abs(p.x-a[e].x)<dma&&abs(p.y-a[e].y)<dma)++s
int main()
{
in>>n;
for(i=0;i<n;i++)
in>>a[i].x>>a[i].y;
sort(a,a+n,ff);
//for(i=0;i<n;i++)cout<<a[i].x<<' '<<a[i].y<<'\n';
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
dx=a[j].x-a[i].x;
dy=a[j].y-a[i].y;
p.x=a[i].x+dx*0.5d-dy*0.8660254d;
p.y=a[i].y+dx*0.8660254d+dy*0.5d;
c;
//if(abs(p.x-a[e].x)<dma&&abs(p.y-a[e].y)<dma)cout<<fixed<<setprecision(4)<<p.x<<' '<<p.y<<'\n';
//else cout<<"fail: "<<fixed<<setprecision(4)<<p.x<<' '<<p.y<<' '<<a[e].x<<' '<<a[e].y<<'\n';
p.x=a[i].x+dx*0.5d+dy*0.8660254d;
p.y=a[i].y-dx*0.8660254d+dy*0.5d;
c;
//if(abs(p.x-a[e].x)<dma&&abs(p.y-a[e].y)<dma)cout<<fixed<<setprecision(4)<<p.x<<' '<<p.y<<'\n';
//else cout<<"fail: "<<fixed<<setprecision(4)<<p.x<<' '<<p.y<<' '<<a[e].x<<' '<<a[e].y<<'\n';
}
out<<s/3;
}