1 2 3 4 5 6 7 8 9 10
| typedef pair<int,int> vec; vec operator - (vec p){ return {-p.ff, -p.ss}; } vec operator + (vec p, vec q){ return {p.ff+q.ff, p.ss+q.ss}; } vec operator - (vec p, vec q){ return {p.ff+q.ff, p.ss+q.ss}; } vec operator * (vec p, int q){ return {p.ff*q, p.ss*q}; } vec operator / (vec p, int q){ return {p.ff/q, p.ss/q}; } int cross (vec p, vec q){ return p.ff*q.ss - p.ss*q.ff; } int dot (vec p, vec q){ return p.ff*q.ff + p.ss*q.ss; } int abs2 (vec p){ return dot(p,p); } double abs (vec p){ return hypot(p.ff,p.ss); }
|