#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int x1=0;
int y1=0;
int x2=1;
int y2=1;
int x3=0;
int y3=1;
int x4=1;
int y4=0;
std::vector<double> vec;
vec.push_back(sqrt((double)((x2- x1)*(x2-x1) + (y2-y1)*(y2-y1))));
vec.push_back(sqrt((double)((x2- x3)*(x2-x3) + (y2-y3)*(y2-y3))));
vec.push_back(sqrt((double)((x4- x3)*(x4-x3) + (y4-y3)*(y4-y3))));
vec.push_back(sqrt((double)((x4- x1)*(x4-x1) + (y4-y1)*(y4-y1))));
vec.push_back(sqrt((double)((x4- x2)*(x4-x2) + (y4-y2)*(y4-y2))));
vec.push_back(sqrt((double)((x3- x1)*(x3-x1) + (y3-y1)*(y3-y1))));
std::sort(vec.begin(),vec.end());
if(vec[0]==vec[3])
{
std::cout<<"Test"<<std::endl;
double sqrt1 = sqrt(vec[0]*vec[0]+vec[1]*vec[1]);
double sqrt2 = sqrt(vec[2]*vec[2]+vec[3]*vec[3]);
std::cout<<"vec[4] ="<<vec[4]<<std::endl;
/*
std::cout<<"sqrt1 = "<<sqrt1<<std::endl;
*/
if(vec[4]==sqrt1 && vec[5] == sqrt2)
{
std::cout<<"YES"<<std::endl;
return 0;
}
}
std::cout<<"NO";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CiAgICAgICAgaW50IHgxPTA7CiAgICAgICAgaW50IHkxPTA7CiAgICAgICAgaW50IHgyPTE7CiAgICAgICAgaW50IHkyPTE7CiAgICAgICAgaW50IHgzPTA7CiAgICAgICAgaW50IHkzPTE7CiAgICAgICAgaW50IHg0PTE7CiAgICAgICAgaW50IHk0PTA7CgogICAgICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gdmVjOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDItIHgxKSooeDIteDEpICsgKHkyLXkxKSooeTIteTEpKSkpOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDItIHgzKSooeDIteDMpICsgKHkyLXkzKSooeTIteTMpKSkpOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDQtIHgzKSooeDQteDMpICsgKHk0LXkzKSooeTQteTMpKSkpOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDQtIHgxKSooeDQteDEpICsgKHk0LXkxKSooeTQteTEpKSkpOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDQtIHgyKSooeDQteDIpICsgKHk0LXkyKSooeTQteTIpKSkpOwogICAgICAgIHZlYy5wdXNoX2JhY2soc3FydCgoZG91YmxlKSgoeDMtIHgxKSooeDMteDEpICsgKHkzLXkxKSooeTMteTEpKSkpOwoKICAgICAgICBzdGQ6OnNvcnQodmVjLmJlZ2luKCksdmVjLmVuZCgpKTsKICAgICAgICAKCiAgICAgICAgaWYodmVjWzBdPT12ZWNbM10pCiAgICAgICAgeyAgIAogICAgICAgIAlzdGQ6OmNvdXQ8PCJUZXN0Ijw8c3RkOjplbmRsOwogICAgICAgIAlkb3VibGUgc3FydDEgPSBzcXJ0KHZlY1swXSp2ZWNbMF0rdmVjWzFdKnZlY1sxXSk7CiAgICAgICAgCWRvdWJsZSBzcXJ0MiA9IHNxcnQodmVjWzJdKnZlY1syXSt2ZWNbM10qdmVjWzNdKTsKICAgICAgICAJCiAgICAgICAgCXN0ZDo6Y291dDw8InZlY1s0XSA9Ijw8dmVjWzRdPDxzdGQ6OmVuZGw7CiAgICAgICAgCS8qCiAgICAgICAgCXN0ZDo6Y291dDw8InNxcnQxID0gIjw8c3FydDE8PHN0ZDo6ZW5kbDsKICAgICAgICAJKi8KICAgICAgICAJaWYodmVjWzRdPT1zcXJ0MSAmJiB2ZWNbNV0gPT0gc3FydDIpCiAgICAgICAgCXsgICAKICAgICAgICAJCXN0ZDo6Y291dDw8IllFUyI8PHN0ZDo6ZW5kbDsKICAgICAgICAJCXJldHVybiAwOwogICAgICAgIAl9ICAgCiAgICAgICAgfSAgIAoKICAgICAgICBzdGQ6OmNvdXQ8PCJOTyI7CiAgICAgICAgcmV0dXJuIDA7Cn0=