Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. extern void find_array(unsigned char key[200]);
  6.  
  7. unsigned char KEY[200];
  8.  
  9. int check(unsigned char key[200])
  10. {
  11. int pos = 0;
  12. int equal = 0;
  13.  
  14. for (int c = 0; c < 200; c++)
  15. {
  16. if (key[c] == KEY[c])
  17. pos++;
  18. }
  19.  
  20. for (int c1 = 0; c1 < 200; c1++)
  21. {
  22. for (int c2 = 0; c2 < 200; c2++)
  23. {
  24. if(key[c1] == KEY[c2])
  25. equal++;
  26. }
  27. }
  28.  
  29. return pos * 256 + equal;
  30. }
  31.  
  32.  
  33. int main()
  34. {
  35. for (int t = 0; t < 1; t++) //test case 50개
  36. {
  37. for (int i = 0; i < 200; i++)
  38. {
  39. KEY[i] = rand() % 255 + 1; //1~255
  40. }
  41.  
  42. unsigned char key[200] = { 0, };
  43. find_array(key); //you must implement this function
  44. }
  45.  
  46. return 0;
  47. }
  48.  
  49.  
  50.  
  51.  
  52. //user_code.cpp
  53. extern int check(unsigned char key[200]);
  54.  
  55.  
  56. //you must implement this function
  57. //below is my code take a long time(about 2sec for each case)
  58. void find_array(unsigned char key[200])
  59. {
  60. unsigned char temp[200];
  61. int result, pos, equal;
  62.  
  63. for (int k = 0; k < 200; k++)
  64. temp[k] = 0;
  65.  
  66. for (int i = 0; i < 200; i++)
  67. {
  68. for (int val = 1; val <= 255; val++)
  69. {
  70. temp[i] = val;
  71.  
  72. result = check(temp);
  73. equal = result % 256;
  74. pos = (result - equal) / 256;
  75.  
  76. if (pos >= 1)
  77. {
  78. key[i] = val;
  79. temp[i] = 0;
  80. break;
  81. }
  82. }
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement