CodeForces - 468A 24 Game

题目描述:

Little X used to play a card game called "24 Game", but recently he has found it too easy. So he invented a new game.

Initially you have a sequence of n integers: 1, 2, ..., n. In a single step, you can pick two of them, let's denote them a and b, erase them from the sequence, and append to the sequence either a + b, or a - b, or a × b.

After n - 1 steps there is only one number left. Can you make this number equal to 24?

Input

The first line contains a single integer n (1 ≤ n ≤ 10^{5}).

Output

If it's possible, print "YES" in the first line. Otherwise, print "NO" (without the quotes).

If there is a way to obtain 24 as the result number, in the following n - 1 lines print the required operations an operation per line. Each operation should be in form: "a op b = c". Where a and b are the numbers you've picked at this operation; op is either "+", or "-", or "*"; c is the result of corresponding operation. Note, that the absolute value of c mustn't be greater than 10^{18}. The result of the last operation must be equal to 24. Separate operator sign and equality sign from numbers with spaces.

If there are multiple valid answers, you may print any of them.

Examples

Input

1

Output

NO

Input

8

Output

YES
8 * 7 = 56
6 * 5 = 30
3 - 4 = -1
1 - 2 = -1
30 - -1 = 31
56 - 31 = 25
25 + -1 = 24

 题目大意:

1:给你一个n,问用上1到n中的每一个数,进行 + - * 操作能否得到24点。

解题报告:

1:n <= 3 就算全部相乘都得不到。

2:n == 4。可由2 * 3 = 6 6 * 4 = 24 1 * 24 = 24得到

3:n == 5。可由3 - 2 = 1 1 + 5 = 6 6 * 4 = 24 1 * 24 = 24

4:n >= 6。4 * 6 = 24再得到一个0全部和0乘就行了。最后再拿0 + 24 = 24

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    ll n;
    scanf("%lld", &n);
    if(n <= 3)printf("NO\n");
    else if(n == 4)printf("YES\n2 * 3 = 6\n6 * 4 = 24\n1 * 24 = 24\n");
    else if(n == 5){
        printf("YES\n");
        printf("3 - 2 = 1\n");
        printf("1 + 5 = 6\n");
        printf("6 * 4 = 24\n");
        printf("1 * 24 = 24\n");
    }else {
        printf("YES\n");
        printf("1 + 2 = 3\n");
        printf("3 - 3 = 0\n");
        printf("0 * 5 = 0\n");
        for(ll i=7; i<=n; ++i){
            printf("0 * %lld = 0\n", i);
        }
        printf("4 * 6 = 24\n");
        printf("0 + 24 = 24\n");
    }
    return 0;
}
发布了164 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jun_____/article/details/104091330