CF1184A1 Heidi Learns Hashing (Easy)

题目描述

Melody Pond 在刚出生时被 Madame Kovarian 从父母身边偷走,成为 Silence 用于对抗 Doctor 的武器。Madame Kovarian 将 Melody 的名字改为 River Song,赋予她新的身份,使她能够杀死第十一任 Doctor。 Heidi 发现 Madame Kovarian 使用了非常复杂的哈希函数来更改她偷走的婴儿的名字。为了防止未来的 Doctor 遭遇同样的命运,Heidi 决定通过学习一些基础的哈希技巧来做好准备。 她设计的第一个哈希函数如下: 给定两个正整数 $ (x, y) $,她定义 $ H(x, y) := x^2 + 2xy + x + 1 $。 现在,Heidi 想知道这个函数是否可逆。也就是说,给定一个正整数 $ r $,你能否找到一对正整数 $ (x, y) $,使得 $ H(x, y) = r $? 如果存在多个这样的数对,请输出 $ x $ 最小的那一组。如果不存在这样的数对,输出 "NO"。

输入格式

第一行包含一个整数 $ r $($ 1 \le r \le 10^{12} $)。

输出格式

输出两个整数 $ x, y $,使得 $ H(x, y) = r $ 且 $ x $ 尽可能小。如果不存在这样的数对,输出 "NO"。

说明/提示

由 ChatGPT 4.1 翻译