Advertisement
Guest User

spr

a guest
Nov 14th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define size 1000000
  5.  
  6. int main() {
  7. srand(time(NULL));
  8.  
  9. int * arr = calloc(size, sizeof(int));
  10. int * arr_repeat = calloc(size, sizeof(int));
  11.  
  12. for(int i = 0; i < size; i++)
  13. arr[i] = rand() % 2;
  14.  
  15. //tutaj węgiel nie chcialo mi sie myslec, czy to przejdzie dla wszystkich wiec, pierwsze 11 jest osobno
  16. arr_repeat[0] = 0;
  17. for(int i = 1; i <= 10; i++) {
  18. for(int j = 0; j < i; j++) {
  19. if(arr[j] == arr[i])
  20. arr_repeat[i]++;
  21. }
  22. }
  23.  
  24. //teraz dla pozostałych - dzieki temu bedziemy mieli 2 sprawdzenia zamiast 10 dla kazdej wartosci
  25. for(int i = 11; i < size; i++) {
  26. //jesli poprzedni bit taki sam
  27. if(arr[i] == arr[i-1]) {
  28. arr_repeat[i] = arr_repeat[i-1] + 1;
  29. //ale sprawdzmy co bylo 11 bitow wczesniej
  30. if(arr[i] == arr[i-11])
  31. arr_repeat[i]--;
  32. }
  33. //poprzedni bit inny
  34. else {
  35. arr_repeat[i] = 10 - arr_repeat[i-1];
  36. //jak wyzej
  37. if(arr[i] == arr[i-11])
  38. arr_repeat[i]--;
  39. }
  40. }
  41.  
  42. for(int k = 0; k < 20; k++) {
  43. printf("%d : %d - %d\n", k, arr[k], arr_repeat[k]);
  44. }
  45.  
  46.  
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement