fork(6) download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. int val[10];
  6. int flag = 0;
  7. void permute(int i,int n)
  8. {
  9. int j,k,t;
  10. long int N;
  11. if(i == n)
  12. {
  13. N=0;
  14. for(k=0;k<=n;k++)
  15. N = N*10 + val[k];
  16. N = N % 1000;
  17. if(flag == 0)
  18. {
  19. if(N%8 == 0)
  20. flag =1;
  21. }
  22. //printf("%ld\n",N);
  23. }
  24. else
  25. {
  26. for(j=i;j<=n;j++)
  27. {
  28. t=val[i];
  29. val[i]= val[j];
  30. val[j] = t;
  31. permute(i+1,n);
  32. t=val[i];
  33. val[i]= val[j];
  34. val[j] = t;
  35. }
  36. }
  37. }
  38. int main() {
  39. int T;
  40. char ch[115];
  41. int arr[10]={0},i,j;
  42. long long int N;
  43. scanf("%d",&T);
  44. while(T--)
  45. {
  46. N=0;
  47. for(i=0;i<10;i++)
  48. arr[i]=0;
  49. scanf("%s",ch);
  50. //printf("%s\n",ch);
  51. //continue;
  52. for(i=0;i<strlen(ch);i++)
  53. {
  54. arr[ch[i]-48]=1;
  55. }
  56. j=0;
  57. for(i=0;i<10;i++)
  58. {
  59. //printf("%d ",arr[i]);
  60. if(arr[i] == 1)
  61. val[j++] = i; //N = N*10 + i;
  62. }
  63. //for(i=0;i<j;i++)
  64. //printf("%d ",val[i]);
  65. // break;
  66. flag = 0;
  67. //printf("%d\n",flag);
  68. permute(0,j-1);
  69. //printf("%d\n",flag);
  70. if(flag == 1)
  71. printf("YES\n");
  72. else
  73. printf("NO\n");
  74. //if(arr[0] == 1)
  75. // N = N*10;
  76. //printf(" %lld\n",N);
  77. //break;
  78. }
  79. return 0;
  80. }
  81.  
Success #stdin #stdout 0s 2056KB
stdin
2
61
75
stdout
YES
NO