| 提出番号 | 1850 |
|---|---|
| 提出者 | yamad |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:14:02 |
| 問題名 | (72)K-th DigitSum |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 12ms | 36176KB |
| 2 | AC | 100% | 10ms | 36192KB |
| 3 | AC | 100% | 6ms | 31728KB |
| 4 | AC | 100% | 5ms | 24736KB |
| 5 | AC | 100% | 14ms | 36176KB |
| 6 | AC | 100% | 14ms | 36192KB |
| 7 | AC | 100% | 13ms | 36192KB |
| 8 | AC | 100% | 7ms | 27280KB |
| 9 | AC | 100% | 10ms | 36192KB |
| 10 | AC | 100% | 10ms | 36176KB |
| 11 | AC | 100% | 4ms | 21296KB |
| 12 | AC | 100% | 6ms | 27456KB |
| 13 | AC | 100% | 8ms | 31472KB |
| 14 | AC | 100% | 13ms | 36192KB |
| 15 | AC | 100% | 13ms | 36176KB |
| 16 | AC | 100% | 11ms | 36176KB |
| 17 | AC | 100% | 12ms | 36176KB |
| 18 | AC | 100% | 11ms | 36192KB |
| 19 | AC | 100% | 8ms | 32768KB |
| 20 | AC | 100% | 12ms | 36192KB |
| 21 | AC | 100% | 10ms | 36192KB |
| 22 | AC | 100% | 6ms | 25728KB |
| 23 | AC | 100% | 11ms | 36192KB |
| 24 | AC | 100% | 4ms | 24560KB |
| 25 | AC | 100% | 3ms | 22992KB |
| 26 | AC | 100% | 4ms | 22304KB |
| 27 | AC | 100% | 12ms | 36176KB |
| 28 | AC | 100% | 13ms | 36176KB |
| 29 | AC | 100% | 7ms | 28528KB |
| 30 | AC | 100% | 15ms | 36176KB |
| 31 | AC | 100% | 15ms | 36192KB |
| 32 | AC | 100% | 11ms | 36176KB |
| 33 | AC | 100% | 10ms | 36192KB |
| 34 | AC | 100% | 8ms | 36096KB |
| 35 | AC | 100% | 12ms | 36192KB |
| 36 | AC | 100% | 13ms | 36176KB |
| 37 | AC | 100% | 13ms | 36176KB |
| 38 | AC | 100% | 9ms | 31632KB |
| 39 | AC | 100% | 10ms | 36176KB |
| 40 | AC | 100% | 13ms | 36176KB |
| 41 | AC | 100% | 4ms | 23312KB |
| 42 | AC | 100% | 10ms | 36192KB |
| 43 | AC | 100% | 7ms | 26480KB |
| 44 | AC | 100% | 9ms | 35232KB |
| 45 | AC | 100% | 10ms | 36176KB |
| 46 | AC | 100% | 9ms | 36128KB |
| 47 | AC | 100% | 4ms | 22928KB |
| 48 | AC | 100% | 5ms | 24160KB |
| 49 | AC | 100% | 11ms | 36176KB |
| 50 | AC | 100% | 5ms | 27232KB |
| 51 | AC | 100% | 5ms | 25040KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> P;
#define fi first
#define se second
#define repl(i,a,b) for(ll i=(ll)(a);i<(ll)(b);i++)
#define rep(i,n) repl(i,0,n)
#define all(x) (x).begin(),(x).end()
#define dbg(x) cout<<#x"="<<x<<endl
#define mmax(x,y) (x>y?x:y)
#define mmin(x,y) (x<y?x:y)
#define maxch(x,y) x=mmax(x,y)
#define minch(x,y) x=mmin(x,y)
#define uni(x) x.erase(unique(all(x)),x.end())
#define exist(x,y) (find(all(x),y)!=x.end())
#define bcnt __builtin_popcount
#define INF 1e16
#define mod 1000000007
ll N,K;
ll dp2[1001][1001];
int main(){
cin>>N>>K;
dp2[0][0]=1;
rep(i,1000)rep(j,N+1){
rep(d,10){
if(j+d<=N)dp2[i+1][j+d]+=dp2[i][j];
}
}
ll d=1;
while(1){
ll cnt=0;
repl(k,1,10){
if(N-k>=0)cnt+=dp2[d-1][N-k];
}
if(cnt>=K)break;
K-=cnt;
d++;
}
string res;
ll rest=N;
rep(i,d){
repl(k,i==0?1:0,10){
ll nrest=rest-k;
if(dp2[d-1-i][nrest]<K){
K-=dp2[d-1-i][nrest];
}else{
res+=to_string(k);
rest-=k;
break;
}
}
}
cout<<res<<endl;
return 0;
}