标签:
庭前芍药妖无格,池上芙蕖净少情。唯有牡丹真国色,花开时节动京城。
——唐·刘禹锡《赏牡丹》
芍药花再红终究妖艳无格。终不及牡丹,国色天香。
——乌拉那拉氏宜修
华妃总是想要用自己的气焰打压皇后,正好有一天,皇上有兴趣来玩一个火柴
游戏,让华妃和皇后都来参与。规则如下:
这是火柴所形成9 个数字的方式,每个数字所需的火柴数量不一样。现在皇上
给每个人发了N 根火柴,华妃要摆出其所能摆出最小的数,而皇后则需要摆出其
所能摆出的最大的数。当然,皇上是不容糊弄的,前导0 或者摆出不规则的数字
什么的都算是作弊。获胜者的奖励则是皇上今晚会翻她的牌子。现在皇后与华妃
都使出浑身解数,而在一旁观看的甄嬛则想尽快知道答案。
[输入格式] (match.in)
输入包括若干组数据。第一行为一个数字T,表示皇上会进行T 次游戏。
接下来一行,每行一个正整数N,表示火柴的数量。
[输出格式] (match.out)
T 行,每组数据包括一行,分别为皇后所能摆出的最优值以及华妃所能摆出
的最优值。
[样例输入]
1 2
[样例输出]
1 1
[样例解释]
两根火柴只能摆出数字1,因此华妃和皇后的答案均为1.
[数据范围与约定]
对于K%的数据:N<=K (K=10,20,...,100)
对于100%的数据:2<=N<=100
简单模拟,没什么好说的,放代码吧(╯‵□′)╯︵┻━┻
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int t,n; int maxn=0,minn=0; int a[101],b[101]; int num[8]; void work2(int n,int i) { num[7]=8; num[6]=0; num[5]=2; num[4]=4; num[3]=7; num[2]=1; if(n<=7) { minn=num[n]; b[i]=minn; return; } if(n>7) { n=n-2; minn=1; while(n>=6) { n=n-6; minn=minn*10; } if(n>=2)minn=minn*10+num[n]; } b[i]=minn; } void work1(int i) { scanf("%d",&n); int key=n; int k=1; while(n>=2) { n=n-2; maxn=1*k+maxn; k=k*10; } if(n==1) maxn+=6*(k/10); a[i]=maxn; work2(key,i); } int main() { scanf("%d",&t); for(int i=1;i<=t;i++) work1(i); for(int i=1;i<=t;i++) printf("%d %d\n",a[i],b[i]); return 0; }
标签:
原文地址:http://www.cnblogs.com/orange-/p/4908529.html