I Wanna Become A 24-Point Master

Time Limit: 2000/1000 MS (Java/Others)    Memory
Limit: 65536/65536 K (Java/Others)

Total Submission(s): 485    Accepted Submission(s): 191

Special Judge

Problem Description
Recently Rikka falls in love with an old but interesting game -- 24 points. She wants to become a master of this game, so she asks Yuta to give her some problems to practice.



Quickly, Rikka solved almost all of the problems but the remained one is really difficult:



In this problem, you need to write a program which can get 24 points with 

rev=2.4-beta-2" alt="" style=""> numbers,
which are all equal to .

 
Input
There are no more then 100 testcases and there are no more then 5 testcases with 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">.
Each testcase contains only one integer 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

 
Output
For each testcase:



If there is not any way to get 24 points, print a single line with -1.



Otherwise, let  be
an array with 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style=""> numbers
and at firsrt 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">.
You need to print  lines
and the th
line contains one integer ,
one char  and
then one integer c, where 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style=""> and  is
"+","-","*" or "/". This line means that you let  and  do
the operation 

rev=2.4-beta-2" alt="" style=""> and
store the answer into 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">.



If your answer satisfies the following rule, we think your answer is right:



1. 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">



2. Each position of the array  is
used at most one tine.



3. The absolute value of the numerator and denominator of each element in array 

rev=2.4-beta-2" alt="" style=""> is
no more than 

rev=2.4-beta-2" alt="" style="">

rev=2.4-beta-2" alt="" style="">

 
Sample Input
4
 
Sample Output
1 * 2
5 + 3
6 + 4
 
Source
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std;
int N;
int main()
{
while(scanf("%d", &N)!=EOF)
{
if(N == 1 || N == 2 || N == 3 ) printf("-1\n");
else if(N == 4)
{
printf("1 * 2\n");
printf("5 + 3\n");
printf("6 + 4\n");
}
else if(N == 5)
{
printf("1 * 2\n");//6 25
printf("3 * 6\n");//7 125
printf("7 - 4\n");//8 120
printf("8 / 5\n");//9 24
}
else if(N == 6)
{
printf("1 * 2\n");//7 36
printf("7 - 3\n");//8 30
printf("8 - 4\n");//9 24
printf("9 + 5\n");//10 30
printf("10 - 6\n");//11 24
}
else if(N == 7)
{
printf("1 / 2\n");//8 1
printf("3 + 8\n");//9 8
printf("4 + 5\n");//10 14
printf("10 + 6\n");//11 21
printf("11 / 7\n");//12 3
printf("12 * 9\n");//13 24
}
else if(N == 8)
{
printf("1 + 2\n");//9 16
printf("3 + 9\n");//10 24
printf("4 - 5\n");//11 0
printf("11 * 6\n");//12 0
printf("12 * 7\n");//13 0
printf("13 * 8\n");//14 0
printf("14 + 10\n");//15 24
}
else if(N == 9)
{
printf("1 + 2\n");//10 18
printf("10 + 3\n");//11 27
printf("11 * 4\n");//12 243
printf("12 / 5\n");//13 27
printf("6 + 7\n");//14 18
printf("14 + 8\n");//15 27
printf("15 / 9\n");//16 3
printf("13 - 16\n");//17 24
}
else if(N == 10)
{
printf("1 + 2\n");//11 20
printf("3 + 4\n");//12 20
printf("12 + 5\n");//13 30
printf("13 + 6\n");//14 40
printf("14 / 7\n");//15 4
printf("11 + 15\n");//16 24
printf("8 - 9\n");//17 0
printf("17 / 10\n");//18 0
printf("16 + 18\n");//19 24
}
else if(N == 11)
{
printf("1 + 2\n");//12 22
printf("12 / 3\n");//13 2
printf("13 + 4\n");//14 13
printf("14 + 5\n");//15 24
printf("15 + 6\n");//16 35
printf("16 + 7\n");//17 46
printf("17 + 8\n");//18 57
printf("18 - 9\n");//19 46
printf("19 - 10\n");//20 35
printf("20 - 11\n");//21 24
}
else if(N >= 12 && N % 2 == 0)
{
printf("1 + 2\n");//N+1 2*N
printf("%d + 3\n",N+1);//N+2 3*N
printf("4 + 5\n");//N+3 2*N
printf("%d + 6\n",N+3);//N+4 3*N
printf("%d + 7\n",N+4);//N+5 4*N
printf("8 + 9\n");//N+6 2*N
printf("%d / 10\n",N+2);//N+7 3
printf("%d / 11\n",N+5);//N+8 4
printf("%d / 12\n",N+6);//N+9 2
printf("%d * %d\n",N+7,N+8);//N+10 12
printf("%d * %d\n",N+9,N+10);//N+11 24
for(int i=0;i<(N-12)/2;i++)
{
printf("%d + %d\n",N+11+2*i,13+i*2);//N+12+2*i
printf("%d - %d\n",N+12+2*i,14+i*2);//N+13+2*i
}
}
else if(N>=13 && N % 2 == 1)
{
printf("1 + 2\n");//N+1 2*N
printf("%d + 3\n",N+1);//N+2 3*N
printf("4 + 5\n");//N+3 2*N
printf("%d + 6\n",N+3);//N+4 3*N
printf("%d + 7\n",N+4);//N+5 4*N
printf("%d + 8\n",N+5);//N+6 5*N
printf("%d + 9\n",N+6);//N+7 6*N
printf("%d + 10\n",N+7);//N+8 7*N
printf("%d + 11\n",N+8);//N+9 8*N
printf("%d / 12\n",N+2);//N+10 3
printf("%d / 13\n",N+9);//N+11 8
printf("%d * %d\n",N+10,N+11);//N+12 24
for(int i=0;i<(N-13)/2;i++)
{
printf("%d + %d\n",N+12+2*i,14+i*2);//N+13+2*i
printf("%d - %d\n",N+13+2*i,15+i*2);//N+14+2*i
} }
}
}


HDU 5308 I Wanna Become A 24-Point Master(2015多校第二场)的更多相关文章

  1. hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语

    题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...

  2. hdu 5305 Friends(2015多校第二场第6题)记忆化搜索

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5305 题意:给你n个人,m条关系,关系可以是online也可以是offline,让你求在保证所有人on ...

  3. hdu 5301 Buildings (2015多校第二场第2题) 简单模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301 题意:给你一个n*m的矩形,可以分成n*m个1*1的小矩形,再给你一个坐标(x,y),表示黑格子 ...

  4. HDU 5301 Buildings(2015多校第二场)

    Buildings Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  5. HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  6. hdu 5742 It's All In The Mind(2016多校第二场)

    It's All In The Mind Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  7. HDU 5308 I Wanna Become A 24-Point Master

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5308 题面: I Wanna Become A 24-Point Master Time Limit ...

  8. 2015多校联合训练赛 hdu 5308 I Wanna Become A 24-Point Master 2015 Multi-University Training Contest 2 构造题

    I Wanna Become A 24-Point Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 ...

  9. 2015 Multi-University Training Contest 2 hdu 5308 I Wanna Become A 24-Point Master

    I Wanna Become A 24-Point Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 ...

随机推荐

  1. python 深复制和浅复制

    https://www.python-course.eu/python3_deep_copy.php-------------------------------------------------- ...

  2. MongoDB中mapReduce的使用

    MongoDB中mapReduce的使用 制作人:全心全意 mapReduce的功能和group by的功能类似,但比group by处理的数据量更大 使用示例: var map = function ...

  3. c++基础_特殊的数字

    #include <iostream> #include <math.h> using namespace std; int main(){ ;i<;i++){ ; )% ...

  4. ubuntu server 12.04.4安装配置

    这里讲

  5. 关于必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用异常问题

    问题描述: 下午调试代码的时候突然发现页面突然异常了,原本以为是代码哪里写错了,后来通过定位发现MVC,UI界面的Linq异常,即关于必须添加对程序集“System.Runtime, Version= ...

  6. 用二分法计算a的n次幂<算法分析>

    实验目的:1.复习java编程:2.掌握二分法的基本原理:3.掌握使用java程序进行二分法计算a的n次幂.实验步骤:1.由用户输入a及n(均为整数):2.利用二分法完成计算,并将中间结果打印出来. ...

  7. 关于变量__name__的理解

    __name__ 1. 基本含义 如果是放在Modules模块中,就表示是模块的名字: 如果是放在Classs类中,就表示类的名字: 2. 模块中的意义 这里重点说一下模块中的意义,这个用法在pyth ...

  8. Java Web 总结

    Java Servlet 总结 Servlet 简介 Servlet 是什么? 运行在Web服务器上的应用程序,作为浏览器和服务器之间的中间层. 与CGI功能类似,优点在于 性能更好 在Web服务器的 ...

  9. Codeforces 629D Babaei and Birthday Cake(线段树优化dp)

    题意: n个蛋糕编号从小到大编号,j号蛋糕可以放在i号上面,当且仅当j的体积严格大于i且i<j,问最终可得的最大蛋糕体积. 分析: 实质为求最长上升子序列问题,设dp[i]从头开始到第i位的最长 ...

  10. [bzoj4519][Cqoi2016]不同的最小割_网络流_最小割_最小割树

    不同的最小割 bzoj-4519 Cqoi-2016 题目大意:题目链接. 注释:略. 想法: 我们发现这和最小割那题比较像. 我们依然通过那个题说的办法一样,构建最小割树即可. 接下来就是随便怎么处 ...