입력 받은 수와 각 자리 수를 합했을 때 특정수가 되는 조건을 만족하는 모든 수 중 최소값
1부터 일일히 조건 확인
단, 속도를 증가시키기 위해 1부터 반복을 하는게 아니라 입력받은 수/2부터 반복 시작
//link: https://www.acmicpc.net/problem/2231
#include <iostream>
int FindMinConstructor(const int N){
int answer = 0;
for (int i=N/2; i<N; ++i){
//note that i is starting from N/2
int divSum = i;
const std::string i_str = std::to_string(i);
for (int i=0; i<i_str.size(); ++i){
divSum += i_str.at(i) - '0';
}
if (divSum == N){
return i;
}
}
return answer;
}
int main(){
int N = 0;
std::cin >> N;
std::cout << FindMinConstructor(N) << std::endl;
return 0;
}