#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
class Cvector
{
public:
int x,y;
Cvector() { x=0;y=0;}
Cvector(int i){}
Cvector(int,int);
Cvector operator+(Cvector);
Cvector operator-(Cvector);
int operator*(Cvector);
bool operator==(Cvector);
Cvector operator*(int);
Cvector operator=(Cvector);
int cross_multiplication(Cvector,Cvector);
float norm();
};
Cvector Cvector::operator=(Cvector a)
{
x=a.x;
y=a.y;
return *this;
}
bool Cvector::operator==(Cvector b)
{
return (x==b.x && y==b.y);
}
Cvector Cvector::operator*(int c)
{
Cvector temp;
temp.x=c*x;
temp.y=c*y;
return temp;
}
float Cvector::norm()
{
float result=0;
result+=x*x+y*y;;
return sqrt(result);
}
Cvector::Cvector(int a,int b)
{
x=a;
y=b;
}
Cvector Cvector::operator+(Cvector a)
{
Cvector temp;
temp.x=x+a.x;
temp.y=y+a.y;
return temp;
}
Cvector Cvector::operator-(Cvector b)
{
Cvector temp;
temp.x=x-b.x;
temp.y=y-b.y;
return temp;
}
int Cvector::operator*(Cvector a)
{
return x*a.x+y*a.y;
}
int main()
{
Cvector a(3,4);
Cvector b(4,5);
cout<<b.norm()<<endl;
Cvector c;
c=a*b;
cout<<(a==b)<<endl;
return 0;
}
ICAjaW5jbHVkZTxpb3N0cmVhbT4KICAgICNpbmNsdWRlPGFsZ29yaXRobT4KICAgICNpbmNsdWRlPG1hdGguaD4KICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICBjbGFzcyBDdmVjdG9yCiAgICB7CiAgICBwdWJsaWM6CiAgICAJaW50IHgseTsKICAgIAlDdmVjdG9yKCkgeyAgeD0wO3k9MDt9CiAgICAgICAgQ3ZlY3RvcihpbnQgaSl7fQogICAgCUN2ZWN0b3IoaW50LGludCk7CiAgICAJQ3ZlY3RvciBvcGVyYXRvcisoQ3ZlY3Rvcik7CiAgICAJQ3ZlY3RvciBvcGVyYXRvci0oQ3ZlY3Rvcik7CiAgICAJaW50ICBvcGVyYXRvciooQ3ZlY3Rvcik7CiAgICAJYm9vbCBvcGVyYXRvcj09KEN2ZWN0b3IpOwogICAgCUN2ZWN0b3Igb3BlcmF0b3IqKGludCk7CiAgICAJQ3ZlY3RvciBvcGVyYXRvcj0oQ3ZlY3Rvcik7CiAgICAJCiAgICAJaW50IGNyb3NzX211bHRpcGxpY2F0aW9uKEN2ZWN0b3IsQ3ZlY3Rvcik7CiAgICAJZmxvYXQgIG5vcm0oKTsKICAgIAogICAgCX07CiAgICBDdmVjdG9yIEN2ZWN0b3I6Om9wZXJhdG9yPShDdmVjdG9yIGEpCiAgICB7CiAgICAJeD1hLng7CiAgICAJeT1hLnk7CiAgICAJcmV0dXJuICp0aGlzOwogICAgCiAgICB9CiAgICBib29sIEN2ZWN0b3I6Om9wZXJhdG9yPT0oQ3ZlY3RvciBiKQogICAgewogICAgCXJldHVybiAoeD09Yi54ICYmIHk9PWIueSk7CiAgICAKICAgIH0KICAgIAogICAgQ3ZlY3RvciBDdmVjdG9yOjpvcGVyYXRvciooaW50IGMpCiAgICB7CiAgICAJQ3ZlY3RvciB0ZW1wOwogICAgCXRlbXAueD1jKng7CiAgICAJdGVtcC55PWMqeTsKICAgIAlyZXR1cm4gdGVtcDsKICAgIAogICAgfQogICAgZmxvYXQgQ3ZlY3Rvcjo6bm9ybSgpCiAgICB7CiAgICAJZmxvYXQgcmVzdWx0PTA7CiAgICAJcmVzdWx0Kz14KngreSp5OzsKICAgIAlyZXR1cm4gc3FydChyZXN1bHQpOwogICAgCiAgICAKICAgIH0KICAgIEN2ZWN0b3I6OkN2ZWN0b3IoaW50IGEsaW50IGIpCiAgICB7CiAgICAJeD1hOwogICAgCXk9YjsKICAgIAogICAgfQogICAgQ3ZlY3RvciBDdmVjdG9yOjpvcGVyYXRvcisoQ3ZlY3RvciBhKQogICAgewogICAgCUN2ZWN0b3IgdGVtcDsKICAgIAl0ZW1wLng9eCthLng7CiAgICAJdGVtcC55PXkrYS55OwogICAgCXJldHVybiB0ZW1wOwogICAgCiAgICB9CiAgICBDdmVjdG9yIEN2ZWN0b3I6Om9wZXJhdG9yLShDdmVjdG9yIGIpCiAgICB7CiAgICAJQ3ZlY3RvciB0ZW1wOwogICAgCXRlbXAueD14LWIueDsKICAgIAl0ZW1wLnk9eS1iLnk7CiAgICAJcmV0dXJuIHRlbXA7CiAgICAKICAgIH0KICAgIGludCBDdmVjdG9yOjpvcGVyYXRvciooQ3ZlY3RvciBhKQogICAgewogICAgCXJldHVybiB4KmEueCt5KmEueTsKICAgIAogICAgCiAgICB9CiAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgIAlDdmVjdG9yIGEoMyw0KTsKICAgIAlDdmVjdG9yIGIoNCw1KTsKICAgIAljb3V0PDxiLm5vcm0oKTw8ZW5kbDsKICAgIAlDdmVjdG9yIGM7CiAgICAJYz1hKmI7CiAgICAJY291dDw8KGE9PWIpPDxlbmRsOwogICAgCiAgICAJcmV0dXJuIDA7CiAgICB9