#include <stdio.h>
//У
class op1
{
protected:
int a;
double d;
bool b;
public:
op1(int _a=0, double _d=0, bool _b=0) : a(_a), d(_d), b(_b)
{}
op1 operator+(op1 &ob)
{
a = a + ob.a;
d = d + ob.d;
b = (b || ob.b);
return *this;
}
op1 operator-(op1 &ob)
{
a = a - ob.a;
d = d - ob.d;
if (b && !ob.b) { b = true; return *this;}
if (b && ob.b) { b = false; return *this;}
if (!b && !ob.b) { b = true; return *this;}
if (!b && ob.b) { b = false; return *this;}
return *this;
}
void print () { printf ("Vot %d, %f, %d\n", a, d, b);}
op1 operator-()
{
a = -a;
d = -d;
if (b) { b = false; return *this;}
if (!b) { b = true; return *this;}
return *this;
}
bool operator!= (op1 &ob)
{
return ( (a!=ob.a)||(d!=ob.d)||(b!=ob.b) );
}
op1 operator= (const op1 &ob)
{
if (this != &ob)
{
a=ob.a;
d=ob.d;
b=ob.b;
}
return *this;
}
op1 vstavF( int _a, double _d, bool _b)
{
a=_a; d=_d; b=_b;
return *this;
}
};
int main ()
{
op1 od (25, 555, true);
od.print();
op1 dwa ( 47.58, false);
dwa.print();
dwa = od - dwa;
dwa.print();
dwa = -dwa;
dwa.print();
op1 tri;
tri = dwa;
bool nu=true;
nu = (tri!=dwa);
printf ("Vot %d\n",nu);
tri.vstavF( 44, 98.5, true);
dwa.print();
tri.print();
return 0;
}
ICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgIAogICAgLy/QowogICAgY2xhc3Mgb3AxCiAgICB7CiAgICAgICAgcHJvdGVjdGVkOgogICAgICAgICAgIGludCBhOwogICAgICAgICAgIGRvdWJsZSBkOwogICAgICAgICAgIGJvb2wgYjsKICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgb3AxKGludCBfYT0wLCAgZG91YmxlIF9kPTAsICBib29sIF9iPTApIDogICAgYShfYSksICBkKF9kKSwgIGIoX2IpCiAgICAgICAgICAge30KICAgICAKICAgICAgICAgICBvcDEgb3BlcmF0b3IrKG9wMSAmb2IpCiAgICAgICAgICAgewogICAgICAgICAgICAgICBhID0gYSArIG9iLmE7CiAgICAgICAgICAgICAgIGQgPSBkICsgb2IuZDsKICAgICAgICAgICAgICAgYiA9IChiIHx8IG9iLmIpOwogICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgICAgfQogICAgIAogICAgICAgICAgIG9wMSBvcGVyYXRvci0ob3AxICZvYikKICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGEgPSBhIC0gb2IuYTsKICAgICAgICAgICAgICAgZCA9IGQgLSBvYi5kOwogICAgICAgICAgICAgICBpZiAoYiAmJiAhb2IuYikgICB7IGIgPSB0cnVlOyAgICByZXR1cm4gKnRoaXM7fQogICAgICAgICAgICAgICBpZiAoYiAmJiBvYi5iKSAgICB7IGIgPSBmYWxzZTsgICByZXR1cm4gKnRoaXM7fQogICAgICAgICAgICAgICBpZiAoIWIgJiYgIW9iLmIpICB7IGIgPSB0cnVlOyAgICByZXR1cm4gKnRoaXM7fQogICAgICAgICAgICAgICBpZiAoIWIgJiYgb2IuYikgICB7IGIgPSBmYWxzZTsgICByZXR1cm4gKnRoaXM7fQogICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgICAgfQogICAgIAogICAgICAgICAgIHZvaWQgcHJpbnQgKCkgIHsgcHJpbnRmICgiVm90ICVkLCAlZiwgICVkXG4iLCBhLCBkLCBiKTt9CiAgICAgCiAgICAgICAgICAgb3AxIG9wZXJhdG9yLSgpCiAgICAgICAgICAgewogICAgICAgICAgICAgICBhID0gLWE7CiAgICAgICAgICAgICAgIGQgPSAtZDsKICAgICAgICAgICAgICAgaWYgKGIpIHsgYiA9IGZhbHNlOyAgIHJldHVybiAqdGhpczt9CiAgICAgICAgICAgICAgIGlmICghYikgeyBiID0gdHJ1ZTsgICByZXR1cm4gKnRoaXM7fQogICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgICAgfQogICAgIAogICAgICAgICAgIGJvb2wgb3BlcmF0b3IhPSAob3AxICZvYikKICAgICAgICAgICB7CiAgICAgICAgICAgICAgIHJldHVybiAoIChhIT1vYi5hKXx8KGQhPW9iLmQpfHwoYiE9b2IuYikgKTsKICAgICAgICAgICB9CiAgICAgCiAgICAgICAgICAgIG9wMSBvcGVyYXRvcj0gKGNvbnN0IG9wMSAmb2IpCiAgICAgICAgICAgewogICAgICAgICAgICAgICBpZiAodGhpcyAhPSAmb2IpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGE9b2IuYTsKICAgICAgICAgICAgICAgICAgIGQ9b2IuZDsKICAgICAgICAgICAgICAgICAgIGI9b2IuYjsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgICAgfSAgCiAgICAgCiAgICAgICAgICAgb3AxIHZzdGF2RiggaW50IF9hLCAgZG91YmxlIF9kLCBib29sIF9iKQogICAgICAgICAgIHsKICAgICAgICAgICAgICAgYT1fYTsgZD1fZDsgYj1fYjsKICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgICAgICAgIH0KICAgICAKICAgICAKICAgIH07CiAgICAgCiAgICBpbnQgbWFpbiAoKQogICAgewogICAgICAgIG9wMSBvZCAoMjUsIDU1NSwgdHJ1ZSk7CiAgICAgICAgb2QucHJpbnQoKTsKICAgICAgICBvcDEgZHdhICggNDcuNTgsICBmYWxzZSk7CiAgICAgICAgZHdhLnByaW50KCk7CiAgICAgICAgZHdhID0gb2QgLSBkd2E7CiAgICAgICAgZHdhLnByaW50KCk7CiAgICAgICAgZHdhID0gLWR3YTsKICAgICAgICBkd2EucHJpbnQoKTsKICAgICAgICBvcDEgdHJpOwogICAgICAgIHRyaSA9IGR3YTsKICAgICAgICBib29sIG51PXRydWU7CiAgICAgICAgbnUgPSAodHJpIT1kd2EpOwogICAgICAgIHByaW50ZiAoIlZvdCAgICVkXG4iLG51KTsKICAgICAgICB0cmkudnN0YXZGKCA0NCwgOTguNSwgdHJ1ZSk7CiAgICAgICAgZHdhLnByaW50KCk7CiAgICAgICAgdHJpLnByaW50KCk7CiAgICAgCiAgICAgcmV0dXJuIDA7CiAgICB9
Vot 25, 555.000000, 1
Vot 47, 0.000000, 0
Vot -22, 555.000000, 1
Vot 22, -555.000000, 0
Vot 0
Vot 22, -555.000000, 0
Vot 44, 98.500000, 1