Guest User

Untitled

a guest
Jan 13th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <cctype>
  3.  
  4. int main(int argc, char* argv[])
  5. {
  6.     srand(time(NULL));
  7.     int n = atoi(argv[1]);
  8.    
  9.     uint8_t tab[n][n];
  10.     for(int i = 0; i < n; i++)
  11.     {
  12.         for(int j = 0; j < n; j++)
  13.         {
  14.             tab[i][j] = rand() % 2;
  15.         }
  16.     }
  17.    
  18.     // tworzenie tablicy sum czesciowych
  19.     int sums[n][n];
  20.     int counter = 0;
  21.     for(int i = 0; i < n; i++)
  22.     {
  23.         for(int j = 0; j < n; j++)
  24.         {
  25.             counter = 0;
  26.             for(int k = 0; k <= i; k++)
  27.             {
  28.                 for(int l = 0; l <= j; l++)
  29.                 {
  30.                     if(tab[k][l] == 1)
  31.                         counter++;
  32.                 }
  33.             }
  34.             sums[i][j] = counter;
  35.         }
  36.     }
  37.  
  38.     counter = 0;
  39.     int complexity = 0;
  40.     int square_size = 2;
  41.     for(square_size = 2; square_size <= n; square_size += 2)
  42.     {
  43.         for(int i = 0; i < n-square_size+1; i++)
  44.         {
  45.             for(int j = 0; j < n-square_size+1; j++)
  46.             {
  47.                 int a, b, c;
  48.                 if(i == 0 || j == 0)
  49.                 {
  50.                     a = 0;
  51.                 }
  52.                 else
  53.                 {
  54.                     a = sums[i-1][j-1];
  55.                 }
  56.                 if(j == 0)
  57.                 {
  58.                     b = 0;
  59.                 }
  60.                 else
  61.                 {
  62.                     b = sums[i+square_size-1][j-1];
  63.                 }
  64.                 if(i == 0)
  65.                 {
  66.                     c = 0;
  67.                 }
  68.                 else
  69.                 {
  70.                     c = sums[i-1][j+square_size-1];
  71.                 }
  72.                 int d = sums[i+square_size-1][j+square_size-1];
  73.                 int s = d+a-b-c;
  74.                 complexity++;
  75.                 if(s*2 == square_size*square_size)
  76.                 {
  77.                     counter++;
  78.                 }
  79.             }
  80.         }
  81.     }
  82.  
  83.     printf("counter = %d\n", counter);
  84.     printf("complexity = %d\n", complexity);
  85.    
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment