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 pandas读写excel

    import pandas as pd import numpy as np df = pd.read_csv("result.csv") # csv # df = pd.read ...

  2. glibc库函数,系统调用API

    glibc封装了大部分系统API,我们一般都是使用glibc封装的接口进行系统调用,碰到一些没有封装的接口,可以通过这个 函数syscall 进行系统调用.   /* Invoke `system c ...

  3. 笔试算法题(22):二分法求旋转数组最小值 & 骰子值概率

    出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转:现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N): 分析: 时间复杂 ...

  4. 笔试算法题(15):-1到N中包含1的数字的个数 & 连续和为N的序列

    出题:输入一个整数N,求从1到N这N个整数的十进制表示中‘1’出现的次数: 分析: 从左向右处理string表示的数字:当前数字长度为n,判断最左边一位数字字符: 如果是0,则直接递归下一位: 如果是 ...

  5. 性能测试培训day2

    上节课 性能测试,多线程.协议.场景 实施:1,脚本开发 运行  排错(看回放,然后view-test_results,看业务) 参数化.关联.检查点.事务.思考时间.集合点 参数化:不做参数化的话, ...

  6. java 反射---学习笔记

    一.java的动态性 反射机制 动态编译 动态执行JavaScript代码 动态字节码操作 二.动态语言 动态语言 程序运行时,可以改变程序结构或变量类型,典型的语言:python.ruby.java ...

  7. Quartz--01

    Quartz 调度器(scheduler):定时定频率的去执行任务 任务(job):业务逻辑 触发器(trigger):让任务生效的时间 JobDetail(包含任务实现类,任务信息) trigger ...

  8. poj 2186 强连通分量

    poj 2186 强连通分量 传送门 Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 33414 Acc ...

  9. ZOJ 3905 Cake

    Cake Time Limit: 4 Seconds      Memory Limit: 65536 KB Alice and Bob like eating cake very much. One ...

  10. BNUOJ 5235 Starship Troopers

    Starship Troopers Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on HDU. Origi ...