#include <stdio.h>

#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)

__attribute__((constructor)) void constructor(){
  printf("konstruktor\n");
}

__attribute__((destructor)) void destructor(){
  printf("\ndestruktor\n");
}

__attribute__((deprecated)) int vypocet(int x, int y){
  return (x + y + (x * y) + (y * y * y) + (x * x));
}

int main(int argc, char** argv){
  int pole[] = { [0 ... 199] = 3, [200 ... 498] = 16, [499] = 3 };
  int i;

  for (i = 0; i < 500; i++){
     int j = vypocet(i, i + 2);
     if (likely(pole[i] != (j % 23))) j++; //pravdepodobnost cca 95%
     if (unlikely(pole[i] == (j % 17))) printf("%i", pole[i] + j); //pravdepodobnost cca 5%
  }
}

