#include #include #include // Yukicoder №164 ちっちゃくないよ!! ★★ // https://yukicoder.me/problems/no/164 // *********************** #define PRINCR do{printf("\n");fflush(stdout);}while(0) #define GETLINE(str) do{char *p;fgets(str,sizeof(str),stdin);p=strchr(str,'\n');if(p)*p='\0';}while(0) #define REP(a,b) for(int a=0;a<(int)(b);++a) static char *GETWORD(char* str) {char c;char *cp;cp=&str[0];c=fgetc(stdin);while( c != EOF ){if((c==' ')||( c=='\n')) break;*cp++=c;c=fgetc(stdin);}*cp='\0';return &str[0];} #define GETINTS(a,b) {char s[34];int *ap=a;REP(i,b){GETWORD(s);sscanf(s,"%d", ap);ap++;}} static int GETLINEINT(void) {char s[34];GETLINE(s);return atoi(s);} static int GETWORDINT(void) {char s[34];GETWORD(s);return atoi(s);} #define Yes(a) printf("%s",((a)?"Yes":"No")) long long miniatoi( char *str ) { int lank; int start; long long val; char *cp; char *endptr; int col; long long mini = 4738381338321616893; cp = str; start = 0; while( *cp != '\0' ) { if( start < *cp ) start = *cp; cp++; } endptr = cp; if( start <= '9' ) { start = start - '0'; } else { start = start - 'A' +10; } start += 1; if( start < 2 ) start = 2; if( start > 36) start = 36; mini = strtol( str , &endptr , start ); return mini; } int main() { char st[24]; int query; long long val; long long minim = 4738381338321616893; query = GETLINEINT(); REP(i,query) { GETLINE(st); val = miniatoi( st ); if( val < minim ) minim = val; } printf("%lld\n",minim); return 0; }