1195: 捧杯
来源:互联网 发布:linux daemonize 编辑:程序博客网 时间:2024/06/08 17:28
Description
112就是FJNUACM分配的实验室,众所周知的是,里面有很多dalao,比如flag,比如nightlemon。终于有一次,flag凭借着自己的实力夺冠拿到了奖杯。于是他把奖杯带到了实验室。引起了一场腥风血雨。由于除了几个dalao以外其他人都很弱,但是大家又都想捧一下杯,并且都想要自己先捧杯,于是为了先后顺序争论不休。flag最后提出了一个办法就是大家一起捧杯,于是众鶸给了大佬面子,打算一起捧杯。但是大家都想离奖杯近一点,于是都把奖杯朝自己的方向拉,而距离奖杯越远的人用的力气也越大。现在假设每个人用的力气等于他距离奖杯的距离,那么告诉你每个人的坐标和奖杯的坐标,问最后奖杯的受力方向。
Input
第一行给出一个T(T<=100)代表输入数据的组数
接下来对于每一组输入
第一行给出两个整数x0,y0(|x0|,|y0|<=100)代表奖杯所在的位置。
第二行给出一个n(1<=n<=100)代表想捧杯的人数。
接下来n行每一行给出两个整数xi,yi(|xi|,|yi|<=100),代表每个人的坐标
Output
对于每一组测试数据输出一行,包含一个向量(ai,bi)代表最后奖杯所受的合力方向
其中要求|ai|,|bi|为尽可能小的整数。ai,bi之间用一个空格隔开,不能有行末空格
Sample Input
3
0 0
1
0 1
0 0
2
0 2
2 0
0 1
2
0 1
0 2
Sample Output
0 1
1 1
0 1
#include<stdio.h>#include<math.h>int main(){ int t, i, j, x1, y1, x, y, n; int a , b, g; int x0, y0; scanf("%d",&t); for(i = 0; i < t; i++) { g = 0; scanf("%d%d",&x0,&y0); // 设置坐标原点 scanf("%d",&n); x1 = 0; y1 = 0; for(j = 0; j < n; j++) { scanf("%d%d",&x,&y); x1 += (x-x0); y1 += (y-y0); //对坐标进行加减 } a = abs(x1); b = abs(y1); for (j = 1; j <= a && j <= b; j++ ) if(a != 0 && b != 0) if(a % j == 0 && b % j == 0 ) g = j; //算两坐标的 最大约数 if(g) // 判断有无约数 printf("%d %d\n",x1/g,y1/g); // 列出所有其他情况才是最难的部分 else if(x1 == 0 && y1 != 0 ) printf("%d %d\n",0,y1>0?1:-1); else if(y1 == 0 && x1 != 0) printf("%d %d\n",x1>0?1:-1,0); else if( x1 != 0 && y1 != 0 ) printf("%d %d\n",x1,y1); else if(x1 == 0 && y1 == 0) printf("0 0\n"); } return 0;}
阅读全文
0 0
- 1195: 捧杯
- FJNU 1195 捧杯 向量(受力分析模拟)
- FJNU第二十届低年级程序设计竞赛(正式赛)-Problem B- 捧杯
- 2016Y FJNU 2016-2017学年第二十届低年级程序设计竞赛(正式赛) Problem B: 捧杯
- problem 1195
- POJ 1195
- poj 1195
- ZOJ 1195
- POJ 1195
- joj 1195
- poj 1195
- joj 1195
- poj 1195
- poj 1195
- poj 1195
- poj 1195
- poj 1195
- POJ 1195
- POJ
- nyoj92 图像有用区域
- Mac下如何安装mysql
- HDU
- Unity协程封装
- 1195: 捧杯
- C#从服务器下载文件
- 数据库事务学习笔记
- yii2安装与初始化-Yii2学习笔记(一)
- Android 屏蔽USB权限弹框
- gradle新建工程,多项目依赖,聚合工程
- nginx官网安装
- ajax的应用
- 设计模式——组合模式