fork download
  1. #include <stdio.h>
  2. #define MAX 1000000
  3.  
  4. int main() {
  5. int N,p[10],n[100];
  6. int mask[MAX];
  7. register int i, j, k;
  8.  
  9. scanf("%d", &N);
  10. for(i=0;i<N;i++) scanf("%d", &n[i]);
  11. memset(mask,0,sizeof(mask));
  12. i = MAX+1;
  13. while(--i) {
  14. k=i;
  15. p[0]=0;
  16. p[1]=0;
  17. p[2]=0;
  18. p[3]=0;
  19. p[4]=0;
  20. p[5]=0;
  21. p[6]=0;
  22. p[7]=0;
  23. p[8]=0;
  24. p[9]=0;
  25. while (k>0) {p[k%10]++; k/=10;}
  26.  
  27. for(j=1;j<10;j++) if(p[j]>0) {k=j; p[j]--; break;}
  28. for(j=0;j<10;j++) while (p[j]>0) {k=10*k+j; p[j]--;}
  29. for(j=0;j<N;j++) if(i%n[j]==0) mask[k]|=(1<<j);
  30. }
  31. for(i=1;i<MAX;i++) if(mask[i]==(1<<N)-1) break;
  32. fprintf(stdout, "%d\n", i);
  33. }
Success #stdin #stdout 0.21s 5944KB
stdin
7
164 278 293 382 483 598 23
stdout
102246