Codeforces #239 Div.2 C Triangle
本题惨状不可言表。
做完之后只见房间里Hack无数。Div.1那边更加激烈,某些人甚至Hack成功20次+
我的错误代码神奇的挺过了一次Hack。。。最终跪在了System Test上。
然后发现我的代码有两个问题。。。。。。。。。。
先来说下题目:
这道题的意思就是给你两个数,代表一个直角三角形的两条直角边。然后让你找到这个三角形,但是必须符合以下要求:
三角形的三个点都在整点上。
三角形的三条边都不能坐标轴平行。(←,我第一次就没有注意这一点,只判断了两条直角边不能与坐标轴平行)
我的解法是枚举两个点可能的坐标。要求产生a^2+b^2=c^2
这样的一组数a, b,其中c是输入的其中一个数。
找到这个之后就可以构造三角形了。
另两个坑点是,需要判断第三条边是否平行于坐标轴,就是两个Y值不能相同。
另一个坑点是,有些数字产生的形如a^2+b^2=c^2
的a和b不只有一组,所以需要都把它们弄下来。
最后我还是勉勉强强的通过了这题。。下面是AC代码(C#):
1 | using System; |