codeforces round 388 div 2 B题
题意:给平行四边形三个点判断出第四个点在哪
设给的三个点分别为A、B、C,稍微画下图发现 A、B、C是可能的D1、D2、D3点构成的三角形的中点,于是可以用中点坐标公式做,测试数据好像很善良,想了一下会不会存在奇数除以2之后坐标不再是整数的问题,指导推导出公式发现,各坐标都一定是整数,这题真的很善良,想了下会不会用重合的点来阴人,那就用集合存吧,后来发现第四个点一定存在三种不同的情况,这题善良得不行。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
using namespace std;
int main()
{
int xa,xb,xc,ya,yb,yc,x1,x2,x3,y1,y2,y3;
scanf("%d %d",&xa,&ya);
scanf("%d %d",&xb,&yb);
scanf("%d %d",&xc,&yc);
x1 = xc-xa+xb;
x2 = xa-xb+xc;
x3 = xb-xc+xa;
y1 = yc-ya+yb;
y2 = ya-yb+yc;
y3 = yb-yc+ya;
set<pair<int,int> > v;
v.insert(make_pair(x1,y1));
v.insert(make_pair(x2,y2));
v.insert(make_pair(x3,y3));
printf("%d\n",v.size());
set<pair<int,int> >::iterator it;
for(it = v.begin();it != v.end();++it)
printf("%d %d\n",(*it).first,(*it).second);
return 0;
}