题目链接:http://codeforces.com/problemset/problem/336/A
好简单的一条数学题,是8月9日的。比赛中没有做出来,今天看,从pupil变成Newbie了,那个伤心啊~~~~不是分数的缘故,而是心态!!!昨晚一直卡机,网页很久才打得开,35min才进入比赛页面,接着做的时候又非常浮躁,静不下心来,提交时再次卡机,临20多min才提交成功,于是罢想!!心态真不好!!!这是第一次做题做得那么糟糕,要端正心态才行,遇到什么紧急情况都要冷静,保持清醒的头脑。
题意不难,以原点、X轴和Y轴各取一点,围成一个等腰直角三角形。当然,过X轴和Y轴的点的那条线段(假设是y = kx+b)要经过输入的坐标点,这个是约束条件。另外输出时要注意X较小的坐标点要先输出。
1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> 4 using namespace std; 5 6 int main() 7 { 8 int x, y, y1, x2; 9 while (scanf("%d%d", &x, &y) != EOF) 10 { 11 if (x < 0 && y < 0 || (x > 0 && y > 0)) // 斜率K = -1 12 { 13 y1 = x + y; 14 x2 = y1; 15 if (x2 < 0) 16 printf("%d 0 0 %d\n", x2, y1); 17 else 18 printf("0 %d %d 0\n", y1, x2); 19 } 20 else // 斜率K = 1 21 { 22 y1 = y - x; 23 x2 = -y1; 24 if (x2 < 0) 25 printf("%d 0 0 %d\n", x2, y1); 26 else 27 printf("0 %d %d 0\n", y1, x2); 28 } 29 } 30 return 0; 31 }