holiday/8.13/A-Points/Points.cpp
2022-08-13 14:22:41 +08:00

84 lines
1.2 KiB
C++

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct Point
{
int x,y;
}p[4];
struct Edge
{
int x,y,val;
}e[4];
int main()
{
for(int i=1;i<=3;i++)
{
scanf("%d%d",&p[i].x,&p[i].y);//!!!!&
}
int sum=0;
for(int i=1;i<=3;i++)
{
int j=i%3+1;
e[i].x=p[j].x-p[i].x;
e[i].y=p[j].y-p[i].y;//i,j
e[i].val=abs(e[i].x)+abs(e[i].y);
sum+=e[i].val;
}
int ans=1;
for(int i=2;i<=3;i++)
{
if(sum-e[i].val<sum-e[ans].val)
{
ans=i;
}
}
ans=ans%3+1;
int j=ans%3+1;
int tot=0;
if(e[ans].x!=0) tot++;
if(e[ans].y!=0) tot++;
if(e[j].x!=0) tot++;
if(e[j].y!=0) tot++;
if(e[j].y*e[ans].y>0)
{
tot--;
}
printf("%d\n",tot);
Point now;
now=p[ans];
if(e[ans].x!=0)
{
// if()
printf("%d %d ",now.x,now.y);
now.x+=e[ans].x;
printf("%d %d\n",now.x,now.y);
}
int been=0;
if(e[ans].y!=0)
{
printf("%d %d ",now.x,now.y);
now.y+=e[ans].y;
if(e[j].y*e[ans].y>0)
{
been=1;
now.y+=e[j].y;
}
printf("%d %d\n",now.x,now.y);
}
if(e[j].x!=0)
{
printf("%d %d ",now.x,now.y);
now.x+=e[j].x;
printf("%d %d\n",now.x,now.y);
}
if(!been&&e[j].y!=0)
{
printf("%d %d ",now.x,now.y);
now.y+=e[j].y;
printf("%d %d\n",now.x,now.y);
}
return 0;
}