wa #10 qwq
查看原帖
wa #10 qwq
757816
skcks楼主2024/8/18 10:45
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <iomanip>
#include <cmath>
#include <queue>
#include <vector>
using namespace std;
long long n,m;
long long a[15],b[15],c[15];
long long vis[10005],f[10005],cnt[10005],k[10005];
int main(){
	scanf("%lld%lld",&n,&m);
	b[1]=2,b[2]=b[3]=b[5]=5,b[7]=3,b[8]=7,b[9]=b[6]=6,b[4]=4;
	for(int i=1;i<=m;i++){
		scanf("%lld",&a[i]);
		cnt[b[a[i]]]=1;
	}
	for(int i=1;i<=m;i++){
		c[b[a[i]]]=max(c[b[a[i]]],a[i]);
	}
	f[0]=1;
	for(int i=0;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(f[i]){
				f[i+b[a[j]]]=1;
				if(cnt[b[a[j]]]+cnt[i]>=cnt[i+b[a[j]]]){
					cnt[i+b[a[j]]]=cnt[i]+cnt[b[a[j]]];
					vis[i+b[a[j]]]=b[a[j]];
				}
			}
		}
	}
	long long x=n;
	long long tot=0;
	while(x>0){
		k[++tot]=c[vis[x]];
		x-=vis[x];
	}
	if(k[1]<k[tot]){
		for(int i=tot;i>=1;i--){
			cout<<k[i];
		}
	}
	else{
		for(int i=1;i<=tot;i++){
			cout<<k[i];
		}
	}
	return 0;
}
2024/8/18 10:45
加载中...