Drazil is playing a math game with Varda.
Let's define
for
positive integer x as a product of factorials of its digits. For example,
.
First, they choose a decimal number a consisting of n digits that contains at least one digit larger than 1. This number may possibly start with leading zeroes. Then they should find maximum positive number x satisfying following two conditions:
1. x doesn't contain neither digit 0 nor digit 1.
2.
=
.
Help friends find such number.
The first line contains an integer n (1 ≤ n ≤ 15) — the number of digits in a.
The second line contains n digits of a. There is at least one digit in a that is larger than 1. Number a may possibly contain leading zeroes.
Output a maximum possible integer satisfying the conditions above. There should be no zeroes and ones in this number decimal representation.
4 1234
33222
3 555
555
In the first case, 
思路:就是尽可能的将数字化简拆分,0,1舍弃,2,3,5,7不动,4拆分成3,2和2,6拆分成5和3,8拆分成7,2,2,和2,9拆分成7,3,3和2,然后从大到小输出即可
比赛时写完才发现自己有个小bug,哎,这时已经锁了(๑´ㅂ`๑)
AC代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
int n, num[11];
char a[20];
while(scanf("%d %s", &n, a) != EOF) {
memset(num, 0, sizeof(num));
for(int i = 0; i < n; i++) {
if(a[i] != '0' || a[i] != '1') {
if(a[i] == '6') {
num[5]++;
num[3]++;
}
else if(a[i] == '8') {
num[2] += 3;
num[7] ++;
}
else if(a[i] == '4') {
num[2] += 2;
num[3]++;
}
else if(a[i] == '9') {
num[7]++;
num[2]++;
num[3]+=2;
}
else num[a[i] - '0']++;
}
}
for(int i = 9; i >= 2; i--) {
while(num[i]){
printf("%d", i);
num[i]--;
}
}
printf("\n");
}
return 0;
}
本文深入探讨了游戏开发领域的关键技术,包括游戏引擎、编程语言、硬件优化等,并重点阐述了AI音视频处理的应用场景和实现方法,如语义识别、物体检测、语音变声等。通过实例分析,揭示了技术融合带来的创新解决方案。
3001

被折叠的 条评论
为什么被折叠?



