#include #include char maxchar(char str[]); int maxnum(char c); long long getnum(char S[],int n); main(){ char str[13]; int N; long long min = 5738381338321616893; scanf("%d",&N); for(int i = 0;i < N;i++){ scanf("%s",str); if(min > getnum(str,maxnum(maxchar(str)))){ min = getnum(str,maxnum(maxchar(str))); } } printf("%lld\n",min); } char maxchar(char str[]){ char c = '0'; for(int i = 0;i < strlen(str);i++){ if(c < str[i]){ c = str[i]; } } return c; } int maxnum(char c){ if(c <= '1'){ return 2; } if(c <= '9'){ return c-'0'+1; } return c-'A'+11; } //n進数のS long long getnum(char S[],int n){ long long ans = 0; long long digit = 1; for(int i = strlen(S)-1;i >= 0;i--){ int c; if(S[i] >= 'A'){ c = S[i] - 'A' + 10; }else{ c = S[i] - '0'; } ans += c*digit; digit *= n; } return ans; }