#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PB push_back #define ALL(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define REP(i, n) for(int i=0; i=0; --i) #define FOR(i, b, e) for(typeof(e) i=b; i!=e; ++i) using namespace std; typedef long long LL; typedef vector VI; typedef vector VVI; typedef vector VS; typedef istringstream ISS; int nmatches[]={6,2,5,5,4,5,6,3,7,6}; string dp[1000]; string &calc(int N) { if(N==0) return dp[0]; if(N<0) return dp[1]; if(SZ(dp[N])) return dp[N]; string res=string(1000,'9'); REP(i, 10) { string &tmp=calc(N-nmatches[i]); if(1+SZ(tmp)> N; if(N==0) {cout << "0 0\n"; return;} dp[0]=string(); dp[1]=string(1000,'9'); string res=string(1000,'9'); FOR(i, 1, 10) { string tmp=(char)('0'+i)+calc(N-nmatches[i]); if(SZ(tmp)> nruns; while(nruns--) go(); return 0; }