[R28A]灯塔
数据规模:,,且 均不为 。
思路
两束光线分别沿向量 与 方向发射,它们在原点形成直角等价于这两个方向向量互相垂直,也就是点积为 :
直接读入每组数据计算即可。坐标绝对值最大为 ,点积的绝对值最大为 ,在 Int64 范围内,无需担心溢出。
复杂度
时间 ,空间 。
仓颉实现
import std.env.*
import std.convert.*
main(): Int64 {
let reader = getStdIn()
let t = Int64.parse(reader.readln().getOrThrow())
for (_ in 0..t) {
let a = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
let x1 = a[0]
let y1 = a[1]
let x2 = a[2]
let y2 = a[3]
if (x1 * x2 + y1 * y2 == 0) {
println("Yes")
} else {
println("No")
}
}
return 0
}