CodeForces-749B

来源:互联网 发布:13年网络炒作事件 编辑:程序博客网 时间:2024/04/28 23:57

   给定3个坐标,求可能构成平行四边形的第四个点,枚举两个点,根据这两个点的横纵坐标差,来得到第四个点的坐标,注意生成的坐标需要判重。

AC代码:

#include<cstdio>#include<set>using namespace std;struct node{int x,y;node(){}node(int x,int y):x(x),y(y){}bool operator <(const node &p)const{return x<p.x||(x==p.x&&y<p.y);}};set<node>ss;int main(){node p[3];for(int i=0;i<3;++i){scanf("%d%d",&p[i].x,&p[i].y);}for(int i=0;i<3;++i)for(int j=i+1;j<3;++j){node t;for(int k=0;k<3;++k) if(k!=i&&k!=j) t=p[k];//ss.insert(t);int x=p[i].x-p[j].x;int y=p[i].y-p[j].y;ss.insert(node(t.x+x,t.y+y));ss.insert(node(t.x-x,t.y-y));}printf("%d\n",ss.size());for(set<node>::iterator c=ss.begin();c!=ss.end();++c)printf("%d %d\n",c->x,c->y);}

如有不当之处欢迎指出!

0 0
原创粉丝点击