This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<cstdio> | |
#include<iostream> | |
#include<vector> | |
using namespace std; | |
int getNum(int n){ | |
int cnt = 6; | |
bool is_first = true; | |
int divisor = 100000; | |
int num = n; | |
if (n == 0) | |
return 1; | |
while (1){ | |
if (num/divisor != 0) | |
{ | |
if (is_first == true){ | |
is_first = false; | |
} | |
} | |
if (is_first == true) | |
cnt--; | |
num %= divisor; | |
divisor /= 10; | |
if (divisor == 0) | |
break; | |
} | |
return cnt; | |
} | |
bool check(vector<int> wrong_btn,int n){ | |
int divisor = 100000; | |
int num = n; | |
bool is_first = false; | |
if (num == 0) | |
{ | |
int temp = num/divisor; | |
for (int i = 0; i < wrong_btn.size(); i++){ | |
if (temp == wrong_btn[i]) | |
return false; | |
} | |
return true; | |
} | |
while (1){ | |
if (is_first == true || num/divisor != 0) | |
{ | |
is_first = true; | |
int temp = num/divisor; | |
for (int i = 0; i < wrong_btn.size(); i++){ | |
if (temp == wrong_btn[i]) | |
return false; | |
} | |
} | |
num %= divisor; | |
divisor /= 10; | |
if (divisor == 0) | |
break; | |
} | |
return true; | |
} | |
int main(void) | |
{ | |
int N; | |
scanf("%d",&N); | |
int M; | |
scanf("%d",&M); | |
vector<int> wrong_btn; | |
for (int i = 0; i<M; i++){ | |
int temp; | |
scanf("%d",&temp); | |
wrong_btn.push_back(temp); | |
} | |
int dist; | |
int min = 10000000; | |
int min_num; | |
bool is_all = false; | |
for (int j = 0; j<=12345678;j++){ | |
if (check(wrong_btn, j) == false) | |
continue; | |
dist = abs(j-N); | |
if (dist < min) | |
{ | |
min = dist; | |
min_num = j; | |
} | |
is_all = true; | |
} | |
int subt = abs(N-min_num); | |
int case1; | |
if (is_all == false) | |
case1 = 99999999; | |
else | |
case1 = getNum(min_num) + subt; | |
int case2 = abs(N-100); | |
if (case1 > case2) | |
printf("%d",case2); | |
else | |
printf("%d",case1); | |
} |
댓글
댓글 쓰기