fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int N, K;
  6.  
  7. int getSize(int N) {
  8. int cnt = 0;
  9. while(N > 0) {
  10. cnt++;
  11. N/=10;
  12. }
  13. return cnt;
  14. }
  15.  
  16. int main() {
  17. cin.tie(NULL);
  18. ios_base::sync_with_stdio(false);
  19. vector<int>arr;
  20. arr.resize(3);
  21. cin >> N >> K;
  22. vector<int>ans;
  23. int SIZE = getSize(N);
  24. for(int i = 0 ; i < K ; i++) {
  25. cin >> arr[i];
  26. }
  27. sort(arr.rbegin(), arr.rend());
  28. bool FIND = false;
  29.  
  30.  
  31. while(!FIND && SIZE > 0) {
  32. for(int i = 0 ; i < arr.size() ; i++) {
  33. if(arr[i] > N / (int)pow(10, SIZE - 1)) continue;
  34. else if(arr[i] == N / (int)pow(10, SIZE - 1)) {
  35. ans.push_back(arr[i]);
  36. N = N % (int)pow(10, SIZE - 1);
  37. SIZE--;
  38. break;
  39. }
  40. else {
  41. ans.push_back(arr[i]);
  42. SIZE--;
  43. FIND = true;
  44. break;
  45. }
  46. }
  47. }
  48.  
  49. while(SIZE > 0) {
  50. ans.push_back(arr[0]);
  51. SIZE--;
  52. }
  53.  
  54. for(int i = 0 ; i < ans.size() ; i++) {
  55. if(ans[i] == 0) continue;
  56. cout << ans[i];
  57. }
  58. }
Success #stdin #stdout 0s 4396KB
stdin
10 1
1
stdout
1