| 提出番号 | 1929 |
|---|---|
| 提出者 | rickytheta |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:37:23 |
| 問題名 | (72)K-th DigitSum |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 24ms | 44960KB |
| 2 | AC | 100% | 24ms | 44976KB |
| 3 | AC | 100% | 22ms | 44960KB |
| 4 | AC | 100% | 13ms | 41888KB |
| 5 | AC | 100% | 30ms | 44976KB |
| 6 | AC | 100% | 30ms | 44960KB |
| 7 | AC | 100% | 25ms | 44960KB |
| 8 | AC | 100% | 15ms | 44464KB |
| 9 | AC | 100% | 31ms | 44976KB |
| 10 | AC | 100% | 27ms | 44960KB |
| 11 | AC | 100% | 10ms | 38304KB |
| 12 | AC | 100% | 16ms | 44576KB |
| 13 | AC | 100% | 16ms | 44960KB |
| 14 | AC | 100% | 25ms | 44960KB |
| 15 | AC | 100% | 25ms | 44960KB |
| 16 | AC | 100% | 23ms | 44976KB |
| 17 | AC | 100% | 26ms | 44960KB |
| 18 | AC | 100% | 29ms | 44960KB |
| 19 | AC | 100% | 19ms | 44960KB |
| 20 | AC | 100% | 28ms | 44960KB |
| 21 | AC | 100% | 24ms | 44960KB |
| 22 | AC | 100% | 13ms | 42912KB |
| 23 | AC | 100% | 20ms | 44960KB |
| 24 | AC | 100% | 11ms | 41648KB |
| 25 | AC | 100% | 11ms | 40096KB |
| 26 | AC | 100% | 11ms | 39328KB |
| 27 | AC | 100% | 25ms | 44960KB |
| 28 | AC | 100% | 31ms | 44976KB |
| 29 | AC | 100% | 20ms | 44960KB |
| 30 | AC | 100% | 32ms | 44960KB |
| 31 | AC | 100% | 29ms | 44976KB |
| 32 | AC | 100% | 34ms | 44960KB |
| 33 | AC | 100% | 24ms | 44960KB |
| 34 | AC | 100% | 19ms | 44960KB |
| 35 | AC | 100% | 24ms | 44960KB |
| 36 | AC | 100% | 33ms | 44976KB |
| 37 | AC | 100% | 32ms | 44976KB |
| 38 | AC | 100% | 16ms | 44960KB |
| 39 | AC | 100% | 31ms | 44960KB |
| 40 | AC | 100% | 30ms | 44976KB |
| 41 | AC | 100% | 12ms | 40368KB |
| 42 | AC | 100% | 22ms | 44960KB |
| 43 | AC | 100% | 13ms | 43680KB |
| 44 | AC | 100% | 26ms | 44960KB |
| 45 | AC | 100% | 25ms | 44960KB |
| 46 | AC | 100% | 23ms | 44976KB |
| 47 | AC | 100% | 11ms | 39968KB |
| 48 | AC | 100% | 10ms | 41248KB |
| 49 | AC | 100% | 30ms | 44976KB |
| 50 | AC | 100% | 15ms | 44448KB |
| 51 | AC | 100% | 12ms | 42144KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef int _loop_int;
#define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i)
#define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i)
#define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i)
#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define DEBUG_VEC(v) cout<<#v<<":";REP(i,v.size())cout<<" "<<v[i];cout<<endl
#define ALL(a) (a).begin(),(a).end()
#define CHMIN(a,b) a=min((a),(b))
#define CHMAX(a,b) a=max((a),(b))
int n;
int k;
const int UB = (1<<30)-1;
int cnt[1252][1252]; // cnt[i][j] := i-keta, sum=j, leading-zero ok
int cnt2[1252][1252]; // cnt2[i][j]:= i-keta, sum=j, leading-zero ng
int main(){
scanf("%d%d",&n,&k);
cnt[0][0] = 1;
FOR(len,1,1025)REP(sum,n+1){
REP(d,10){
cnt[len][sum+d] += cnt[len-1][sum];
CHMIN(cnt[len][sum+d], UB);
}
FOR(d,1,10){
cnt2[len][sum+d] += cnt[len-1][sum];
CHMIN(cnt2[len][sum+d], UB);
}
}
int len = 0;
while(cnt[len][n]<k)len++;
while(len > 0){
int tmp = 0;
int ans = 0;
REP(d,10){
int t2 = tmp + cnt[len-1][n-d];
if(t2 >= k){
ans = d;
break;
}
tmp = t2;
}
putchar(ans+'0');
n -= ans;
k -= tmp;
len--;
}
puts("");
return 0;
}