jiejiejiang2004

题解:牛客周赛 Round 52 A

A 两数之和

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld

题目描述

对于给定的正整数 \(z\) ,你需要寻找两个不同的正整数 \(x\)\(y\) ,使得 \(x+y=z\) 成立。
如果不存在这样的 \(x\)\(y\) ,你只需要输出 NO

输入描述:

在一行上输入一个整数 \(z\ (1 \le z \le 2 \cdot 10^5)\)

输出描述:

如果存在符合要求的答案,你需要先输出 YES ,随后在第二行上输出两个正整数 \(x\)\(y\) 代表你的答案;否则,直接输出 NO 。

示例1

输入

2

输出

NO

示例2

输入

3

输出

YES
1 2

题解

只要这个数减去 \(1\) 之后大于 \(1\) 就可以了

代码

#include <iostream>
int main()
{
    int n;
    std::cin >> n;
    int b = n - 1;
    
    if(b > 1) std::cout << "YES\n" << 1 << " " << b;
    else std::cout << "NO";
}

posted on 2024-07-22 14:21  Jiejiejiang  阅读(12)  评论(0编辑  收藏  举报

导航