1. Си / Говнокод #24355

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    // https://github.com/google/brotli/blob/29dc2cce9090d6c92c908116e11373bc7fdc8ad1/c/enc/static_dict.c#L82
    
            /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + <suffix> */
            if (s[0] == ' ') {
              AddMatch(id + n, l + 1, l, matches);
              if (s[1] == 'a') {
                if (s[2] == ' ') {
                  AddMatch(id + 28 * n, l + 3, l, matches);
                } else if (s[2] == 's') {
                  if (s[3] == ' ') AddMatch(id + 46 * n, l + 4, l, matches);
                } else if (s[2] == 't') {
                  if (s[3] == ' ') AddMatch(id + 60 * n, l + 4, l, matches);
                } else if (s[2] == 'n') {
                  if (s[3] == 'd' && s[4] == ' ') {
                    AddMatch(id + 10 * n, l + 5, l, matches);
                  }
                }
              } else if (s[1] == 'b') {
                if (s[2] == 'y' && s[3] == ' ') {
                  AddMatch(id + 38 * n, l + 4, l, matches);
                }
              } else if (s[1] == 'i') {
                if (s[2] == 'n') {
                  if (s[3] == ' ') AddMatch(id + 16 * n, l + 4, l, matches);
                } else if (s[2] == 's') {
                  if (s[3] == ' ') AddMatch(id + 47 * n, l + 4, l, matches);
                }
              } else if (s[1] == 'f') {
                if (s[2] == 'o') {
                  if (s[3] == 'r' && s[4] == ' ') {
                    AddMatch(id + 25 * n, l + 5, l, matches);
                  }
                } else if (s[2] == 'r') {
                  if (s[3] == 'o' && s[4] == 'm' && s[5] == ' ') {
                    AddMatch(id + 37 * n, l + 6, l, matches);
                  }
                }
              } else if (s[1] == 'o') {
                if (s[2] == 'f') {
                  if (s[3] == ' ') AddMatch(id + 8 * n, l + 4, l, matches);
                } else if (s[2] == 'n') {
                  if (s[3] == ' ') AddMatch(id + 45 * n, l + 4, l, matches);
                }
              } else if (s[1] == 'n') {
                if (s[2] == 'o' && s[3] == 't' && s[4] == ' ') {
                  AddMatch(id + 80 * n, l + 5, l, matches);
                }
              } else if (s[1] == 't') {
                if (s[2] == 'h') {
                  if (s[3] == 'e') {
                    if (s[4] == ' ') AddMatch(id + 5 * n, l + 5, l, matches);
                  } else if (s[3] == 'a') {
                    if (s[4] == 't' && s[5] == ' ') {
                      AddMatch(id + 29 * n, l + 6, l, matches);
                    }
                  }
                } else if (s[2] == 'o') {
                  if (s[3] == ' ') AddMatch(id + 17 * n, l + 4, l, matches);
                }
              } else if (s[1] == 'w') {
                if (s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ') {
                  AddMatch(id + 35 * n, l + 6, l, matches);
                }
              }
            } else if (s[0] == '"') {
              AddMatch(id + 19 * n, l + 1, l, matches);
              if (s[1] == '>') {
                AddMatch(id + 21 * n, l + 2, l, matches);
              }
            } else if (s[0] == '.') {
              AddMatch(id + 20 * n, l + 1, l, matches);
              if (s[1] == ' ') {
                AddMatch(id + 31 * n, l + 2, l, matches);
                if (s[2] == 'T' && s[3] == 'h') {
                  if (s[4] == 'e') {
                    if (s[5] == ' ') AddMatch(id + 43 * n, l + 6, l, matches);
                  } else if (s[4] == 'i') {
                    if (s[5] == 's' && s[6] == ' ') {
                      AddMatch(id + 75 * n, l + 7, l, matches);
                    }
                  }
                }
              }
            } else if (s[0] == ',') {
              AddMatch(id + 76 * n, l + 1, l, matches);
              if (s[1] == ' ') {
                AddMatch(id + 14 * n, l + 2, l, matches);
              }
            } else if (s[0] == '\n') {
              AddMatch(id + 22 * n, l + 1, l, matches);
              if (s[1] == '\t') {
                AddMatch(id + 50 * n, l + 2, l, matches);
              }
            } else if (s[0] == ']') {
              AddMatch(id + 24 * n, l + 1, l, matches);
            } else if (s[0] == '\'') {
              AddMatch(id + 36 * n, l + 1, l, matches);
            } else if (s[0] == ':') {
              AddMatch(id + 51 * n, l + 1, l, matches);

    Какая-то непонятная херота из архиватора Brotli с кучей магических констант, которые хрен знает что означают. Очевидно, этот код должен находить в текстовых данных какие-то часто встречающиеся куски текста, и таким образом сжимать эту хрень (т.н. словарный метод сжатия) но зачем все так пиздануто рассовывать по буквам в куче if() ?

    Не могли для этого каких-нибудь ГОМОИКОН сделать?

    j123123, 04 Июня 2018

    Комментарии (26)
  2. Java / Говнокод #24353

    −2

    1. 1
    https://pastebin.com/m3KsHvKF

    Говнооо! Говноооо! Мноооого говнаааа. Настолько много, что в 100 строк поместится только 2/16 говна. Это код калькулятора, который я писал когда только начинал изучать java - первый язык программирования. Особенно жестко на 30, 115, 150, 220, 700, 740, строках. Ну, короче, вы поняли - везде.

    the-alator, 03 Июня 2018

    Комментарии (8)
  3. C++ / Говнокод #24352

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    void Table::draw() {
    	SetConsoleCursorPosition(consOutput, { 0,0 });
    	for (int i = 0; i < lY*(lengthOfCageY + 1) + 1; i++) {
    		for (int j = 0; j < lX*(lengthOfCageX + 1) + 1; j++) {
    			if (i == 0 && j == 0)
    				cout << (char)201;
    			else if (i == 0 && j == lX*(lengthOfCageX + 1))
    				cout << (char)187;
    			else if (i == lY*(lengthOfCageY + 1) && j == 0)
    				cout << (char)200;
    					else
    						if (i == lY*(lengthOfCageY + 1) && j == lX*(lengthOfCageX + 1))
    							cout << (char)188;
    						else
    							if (i == 0)
    								if (j % (lengthOfCageX + 1) == 0)
    									cout << (char)203;
    								else
    									cout << (char)205;
    							else
    								if (i == lY*(lengthOfCageY + 1))
    									if (j % (lengthOfCageX + 1) == 0)
    										cout << (char)202;
    									else
    										cout << (char)205;
    								else
    									if (j == 0)
    										if (i % (lengthOfCageY + 1) == 0)
    											cout << (char)204;
    										else
    											cout << (char)186;
    									else
    										if (j == lX*(lengthOfCageX + 1))
    											if (i % (lengthOfCageY + 1) == 0)
    												cout << (char)185;
    											else
    												cout << (char)186;
    										else
    											if (i % (lengthOfCageY + 1) == 0 && j % (lengthOfCageX + 1) == 0)
    												cout << (char)206;
    											else
    												if (i % (lengthOfCageY + 1) == 0)
    													cout << (char)205;
    												else
    													if (j % (lengthOfCageX + 1) == 0)
    														cout << (char)186;
    													else
    														cout << " ";
    		}
    		cout << endl;
    	}
    }

    И прекрасно и ужасно. Плохой но хороший код для вывода красивой таблицы в консоль

    the-alator, 03 Июня 2018

    Комментарии (0)
  4. Си / Говнокод #24350

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    int mysolve (int a, int b, int m) {
    	int n = (int) sqrt (m + .0) + 1;
     
    	int an = 1;
    	for (int i = n, t = a; i;) {
    		if (i & 1) {
    		    an = (an * t) % m;
    		    i -= 1;
    		} else {
    			t = (t * t) % m;
    			i >>= 1;
    		}
            }
     
    	int *vals = (int*) malloc(m * sizeof(int));
    	memset(vals, -1, m * sizeof(int));
     
    	for (int i = 1, cur = an; i <= n; ++i) {
    		if (vals[cur] == -1) vals[cur] = i;
    		cur = (cur * an) % m;
    	} 
     
    	for (int i = 0, cur = b; i <= n; ++i) {
    		if (vals[cur] != -1) {
    			int ans = vals[cur] * n - i;
    			if (ans < m) {
    				free(vals);
    				return ans;
    			}
    		}
    		cur = (cur * a) % m;
    	}
    	free(vals);
    	return -1;
    }

    Чото както тухло тут.
    Вот держите, вспомнил своё олимпиАДное прошлое, перевёл на Сишку и оптимизировал вот этоу хуйнц: https://e-maxx.ru/algo/discrete_log
    Чем больше модуль, ьем боьше жрёт память, дальше оптимизировать лень.

    Мне кажется, что что-то я здесь сделал не так...

    666_N33D135, 02 Июня 2018

    Комментарии (25)
  5. JavaScript / Говнокод #24345

    0

    1. 1
    2. 2
    3. 3
    4. 4
    var comment = document.querySelector('textarea#formElm_text');
      var info = comment.parentNode;
    
      if(!comment || !info) return;

    https://github.com/1024--/govnokod.ru-userscripts/blob/master/bbcode.user.js

    minusinho, 31 Мая 2018

    Комментарии (14)
  6. PHP / Говнокод #24343

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?php
    if (isset($_SERVER['HTTP_X_REAL_IP'])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $_SERVER['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
    }
    $ip = $_SERVER['REMOTE_ADDR'];

    Я уже молчу о том, что HTTP_X_FORWARDED_FOR может содержать уязвимые строки и в дальнейшем он никак не фильтрируется.
    Во вторых, нужно просто один раз нормально настроить сервер и получать данные от REMOTE_ADDR или HTTP_X_REAL_IP.

    Akdmeh, 31 Мая 2018

    Комментарии (12)
  7. Java / Говнокод #24342

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    package figury;
    import java.util.Scanner;
    public class figuremn {
    
    public static void main (String[] args){
    String [] monthyear = new String[12];
    monthyear [1] = "Январь";
    monthyear [2] = "Февраль";
    monthyear [3] = "Март";
    monthyear [4] = "Апрель";
    monthyear [5] = "май";
    monthyear [6] = "июнь";
    monthyear [7] = "июль";
    monthyear [8] = "август";
    monthyear [9] = "сентябрь";
    monthyear [10] = "октябрь";
    monthyear [11] = "ноябрь";
    monthyear [12] = "декабрь";
    System.out.println("Введите номер месяца");
    Scanner scan = new Scanner(System.in);
    String x = scan.nextLine;
    monthyear[]=x;
    {System.out.println(x);
    }
      }
    }

    Ray_Mints, 31 Мая 2018

    Комментарии (38)
  8. PHP / Говнокод #24339

    −2

    1. 1
    https://habr.com/post/412603/

    Оператор []=

    Короткий оператор добавления нового элемента в массив. Он работает так, вы ожидаете, добавляя элемент на правой части в левую частью массива.

    Штоблядь???

    minusinho, 29 Мая 2018

    Комментарии (31)
  9. Си / Говнокод #24338

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    // https://github.com/omonar/nginx-http-auth-digest/blob/38fd7eb04b862636e61b812bbbb8fd2cae4d9ab4/ngx_http_auth_digest_module.c#L910
    
            if (ngx_auth_digest_str2_casecmp(start, 'n', 'c'))
            {
                field = &ngx_http_auth_digest_fields.nc;
    
            } else if (ngx_auth_digest_str3_casecmp(start, 'q', 'o', 'p'))
            {
                field = &ngx_http_auth_digest_fields.qop;
    
            } else if (ngx_auth_digest_str3_casecmp(start, 'u', 'r', 'i'))
            {
                field = &ngx_http_auth_digest_fields.uri;
    
            } else if (ngx_auth_digest_str5_casecmp(start, 'n', 'o', 'n', 'c', 'e'))
            {
                field = &ngx_http_auth_digest_fields.nonce;
    
            } else if (ngx_auth_digest_str5_casecmp(start, 'r', 'e', 'a', 'l', 'm'))
            {
                field = &ngx_http_auth_digest_fields.realm;
    
            } else if (ngx_auth_digest_str6_casecmp(start, 'c', 'n', 'o', 'n', 'c', 'e'))
            {
                field = &ngx_http_auth_digest_fields.cnonce;
    
            } else if (ngx_auth_digest_str6_casecmp(start, 'o', 'p', 'a', 'q', 'u', 'e'))
            {
                field = &ngx_http_auth_digest_fields.opaque;
    
            } else if (ngx_auth_digest_str8_casecmp(start, 'u', 's', 'e', 'r', 'n', 'a', 'm', 'e'))
            {
                field = &ngx_http_auth_digest_fields.username;
    
            } else if (ngx_auth_digest_str8_casecmp(start, 'r', 'e', 's', 'p', 'o', 'n', 's', 'e'))
            {
                field = &ngx_http_auth_digest_fields.response;
    
            } else if (ngx_auth_digest_str9_casecmp(start, 'a', 'l', 'g', 'o', 'r', 'i', 't', 'h', 'm'))
            {
                field = &ngx_http_auth_digest_fields.algorithm;
    
            } else {
                goto skip;
    
            }

    Чем им strcasecmp не угодил?

    j123123, 29 Мая 2018

    Комментарии (18)
  10. SQL / Говнокод #24336

    −1

    1. 1
    2. 2
    //Список категорий записан в строках с разделителем вида "23", "11||12" или даже "3||8||12||43||23"
    SELECT id, pagetitle FROM modx_site_content WHERE categores LIKE "%|[[*id]]" OR categores LIKE "%|[[*id]]|%" OR categores LIKE "[[*id]]|%" OR categores="[[*id]]"

    FODD, 29 Мая 2018

    Комментарии (49)