| 提出番号 | 1837 |
|---|---|
| 提出者 | beet |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:09:53 |
| 問題名 | (72)K-th DigitSum |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 31ms | 72256KB |
| 2 | AC | 100% | 31ms | 72256KB |
| 3 | AC | 100% | 36ms | 72256KB |
| 4 | AC | 100% | 32ms | 72272KB |
| 5 | AC | 100% | 36ms | 72272KB |
| 6 | AC | 100% | 32ms | 72256KB |
| 7 | AC | 100% | 31ms | 72256KB |
| 8 | AC | 100% | 36ms | 72256KB |
| 9 | AC | 100% | 31ms | 72256KB |
| 10 | AC | 100% | 31ms | 72256KB |
| 11 | AC | 100% | 36ms | 72256KB |
| 12 | AC | 100% | 34ms | 72256KB |
| 13 | AC | 100% | 36ms | 72240KB |
| 14 | AC | 100% | 33ms | 72256KB |
| 15 | AC | 100% | 32ms | 72272KB |
| 16 | AC | 100% | 32ms | 72272KB |
| 17 | AC | 100% | 36ms | 72272KB |
| 18 | AC | 100% | 35ms | 72272KB |
| 19 | AC | 100% | 31ms | 72256KB |
| 20 | AC | 100% | 31ms | 72256KB |
| 21 | AC | 100% | 31ms | 72256KB |
| 22 | AC | 100% | 31ms | 72256KB |
| 23 | AC | 100% | 36ms | 72256KB |
| 24 | AC | 100% | 30ms | 72256KB |
| 25 | AC | 100% | 30ms | 72256KB |
| 26 | AC | 100% | 34ms | 72272KB |
| 27 | AC | 100% | 36ms | 72256KB |
| 28 | AC | 100% | 36ms | 72256KB |
| 29 | AC | 100% | 36ms | 72272KB |
| 30 | AC | 100% | 34ms | 72256KB |
| 31 | AC | 100% | 33ms | 72256KB |
| 32 | AC | 100% | 36ms | 72256KB |
| 33 | AC | 100% | 32ms | 72256KB |
| 34 | AC | 100% | 33ms | 72272KB |
| 35 | AC | 100% | 30ms | 72256KB |
| 36 | AC | 100% | 36ms | 72256KB |
| 37 | AC | 100% | 33ms | 72272KB |
| 38 | AC | 100% | 31ms | 72272KB |
| 39 | AC | 100% | 31ms | 72272KB |
| 40 | AC | 100% | 34ms | 72256KB |
| 41 | AC | 100% | 33ms | 72256KB |
| 42 | AC | 100% | 32ms | 72272KB |
| 43 | AC | 100% | 33ms | 72256KB |
| 44 | AC | 100% | 34ms | 72256KB |
| 45 | AC | 100% | 31ms | 72240KB |
| 46 | AC | 100% | 33ms | 72256KB |
| 47 | AC | 100% | 32ms | 72256KB |
| 48 | AC | 100% | 36ms | 72240KB |
| 49 | AC | 100% | 36ms | 72256KB |
| 50 | AC | 100% | 31ms | 72256KB |
| 51 | AC | 100% | 34ms | 72256KB |
#include<bits/stdc++.h>
using namespace std;
using Int = long long;
template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}
//INSERT ABOVE HERE
const Int INF = 1e12;
Int dp[1050][1050];
Int dp2[1050][1050];
signed main(){
Int n,k;
cin>>n>>k;
memset(dp,0,sizeof(dp));
for(Int i=1;i<10;i++) dp[1][i]=1;
dp2[0][0]=1;
for(Int i=0;i<=1010;i++){
for(Int j=0;j<=1010;j++){
for(Int k=0;k<10;k++){
dp[i+1][j+k]+=dp[i][j];
chmin(dp[i+1][j+k],INF);
dp2[i+1][j+k]+=dp2[i][j];
chmin(dp2[i+1][j+k],INF);
}
}
}
k--;
Int l=0;
while(dp[l][n]<=k) k-=dp[l++][n];
//cout<<l<<endl;
Int flg=1;
while(l){
Int x=flg;
flg=0;
while(dp2[l-1][n-x]<=k) k-=dp2[l-1][n-x++];
cout<<x;
n-=x;
l--;
}
cout<<endl;
return 0;
}