SHARE
TWEET

spr

a guest Nov 14th, 2017 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Top