#include using namespace std; struct vec3{ float x; float y; float z; }; vec3 operator+(const vec3 &a, const vec3 &b) { vec3 c; c.x=a.x+b.x; c.y=a.y+b.y; c.z=a.z+b.z; return c; } vec3 operator-(const vec3 &a, const vec3 &b) { vec3 c; c.x=a.x-b.x; c.y=a.y-b.y; c.z=a.z-b.z; return c; } vec3 operator-(const vec3 &a) { vec3 c; c.x=-a.x; c.y=-a.y; c.z=-a.z; return c; } vec3 &operator+=(vec3 &a, const vec3 &b) { a.x+=b.x; a.y+=b.y; a.z+=b.z; return a; } vec3 &operator-=(vec3 &a, const vec3 &b) { a.x-=b.x; a.y-=b.y; a.z-=b.z; return a; } vec3 operator*(const vec3 &a, const vec3 &b) { return vec3{a.y*b.z-a.z*b.y, a.z*b.x-a.x*b.z, a.x*b.y-a.y*b.x}; } vec3 operator*(const vec3 &a, const float &b) { return vec3{a.x*b, a.y*b, a.z*b}; } vec3 &operator*=(vec3 &a, const vec3 &b) { a.x=a.y*b.z-a.z*b.y; a.y=a.z*b.x-a.x*b.z; a.z=a.x*b.y-a.y*b.x; return a; } vec3 &operator*=( vec3 &a, const float &b) { a.x*=b; a.y*=b; a.z*=b; return a; } int main(){ vec3 v1 = {1,2,3}; v1 = v1 * 100; cout<