1. C++ / Говнокод #19028

    +5

    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
    #include <bits/stdc++.h>
    using namespace std;
    #define mp make_pair
    #define mt make_tuple
    #define pb push_back
    #define rep(i,a,b) for(int i=a;i<b;++i)
    #define forn(i, n) for(int i=0;i<n;++i)
    #define forv(it, v) for(typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it)
    #define all(c) (c).begin(), (c).end()
    #define fst first
    #define snd second
    typedef vector<int> vi;
    typedef vector<vi> vvi;
    typedef pair<int,int> pii;
    typedef long long ll;
    typedef vector<ll> vll;
    typedef pair<ll,ll> pll;
    typedef long double ld;
    typedef string st;
    const int inf = 1000 * 1000 * 1000;
    const int mod = 1000 * 1000 * 1000 + 7;
    const ld pi = acos(-1.0);
    const ll infl = 1000ll * 1000ll * 1000ll * 1000ll * 1000ll * 1000ll;
    const ld eps = 1e-7;
    #define y1 y1_dhs

    В продолжении предыдущего ГК: типичное начало олимпиадной проги на С++.

    Bobik, 16 Ноября 2015

    Комментарии (90)
  2. C++ / Говнокод #19027

    +2

    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
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll ;
    const int maxn = 100010 ;
    int n , m;
    struct node {
        int x , y;
    }p[10];
    bool cmp(node a , node b)
    {
        if(a.x == b.x) return a .y < b.y ;
        return a.x < b.x ;
    }
    int main()
    {
        scanf("%d",&n) ;
        for(int i = 0 ;i<n ;i++){
            scanf("%d%d",&p[i].x , &p[i].y) ;
        }
        sort(p,p+n ,cmp) ;
        if(n==1){
            printf("-1\n") ;
        }
        else if(n == 2){
            if(p[0].x == p[1].x ||p[0].y == p[1].y){
                printf("-1\n") ;
            }
            else{
                printf("%d\n",abs( p[1].x - p[0].x) * abs(p[1].y - p[0].y))  ;
            }
        }
        else if(n == 3){
            if(p[0].x == p[1].x && p[1].x == p[2].x){
                printf("-1\n") ;
            }
            else if(p[0].y == p[1].y && p[1].y == p[2].y){
                printf("-1\n") ;
            }
            else if(p[0].x == p[1].x){
                if(p[0].y == p[2].y){
                    printf("%d\n",abs(p[1].y - p[2].y) * abs(p[0].x - p[2].x)) ;
                }
                else if(p[1].y == p[2].y){
                    printf("%d\n",abs(p[0].y - p[2].y )*abs(p[0].x -p[2].x)) ;
                }
                else{
                    printf("-1\n") ;
                }
            }
            else if(p[1].x == p[2].x){
                if(p[0].y == p[1].y){
                    printf("%d\n",abs(p[0].y - p[2].y) * abs(p[0].x - p[2].x)) ;
                }
                else if(p[0].y == p[2].y){
                    printf("%d\n",abs(p[0].y - p[1].y )*abs(p[0].x -p[2].x)) ;
                }
                else{
                    printf("-1\n");
                }
            }
           else{
                printf("-1\n");
            }
        }
        else {
            if(p[0].x != p[1].x || p[2].x !=p[3].x ||p[1].y !=p[3].y ||p[0].y != p[2].y ){
                printf("-1\n") ;
            }
            else{
                int flag = 1;
                for(int i = 0 ; i< 4;i++){
                    for(int j = i+1 ;j<4 ;j++){
                        for(int k = j+1 ;k<4;k++){
                            if(p[i].x == p[j].x && p[j].x == p[k].x){
                                printf("-1\n");
                                flag = 0;
                                break ;
                            }
                            else if(p[i].y == p[j].y && p[j].y == p[k].y){
                                printf("-1\n") ;
                                flag = 0;
                                break ;
                            }
                        }
                        if(!flag) break ;
                    }
                    if(!flag) break ;
                }
                if(flag){
                    printf("%d\n",abs(p[1].x - p[3].x) * abs(p[0].y - p[1].y)) ;
                }
            }
        }
        return 0;
    }

    олимпиадники такие олимпиадники

    XYEHOC, 15 Ноября 2015

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

    +2

    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
    #include <fstream>
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    void main()
    	ifstream in("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Right.txt");//Даётся файл, содержащий единицы и нули, 1 - человек есть, 0 - человека нет
    	in >> s1;
    	cout << "Содержимое файла Right.txt: " << endl << s1 << endl;
    	int CountRDoor = 0;
    			CountRDoor++;
    	}
    	cout << "Кол-во человек, прошедших через правую дверь = " << CountRDoor << endl;
    	cout << "________________________________________________________________________________"; //< Для более лёгкой навигации
      //printf("%c", 7);
    	cout << endl;
    	char s2[4096];
    	ifstream in2("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Left.txt");
    	in2 >> s2;
    	in2.close();
    	cout << "Содержимое файла Left.txt: " << endl << s2 << endl;
    	int CountLDoor = 0;
    	int j = 1;
    	while (j != 4095)
    	{
    		if (s2[j] < s2[j + 1])
    			CountLDoor++;
    		j++;
    	}
    	cout << "Кол-во человек, прошедших через левую дверь = " << CountLDoor << endl;
    	cout << "________________________________________________________________________________";
    	//printf("%c", 7);
    	cout << endl;
    	char s3[4096];
    	ifstream in3("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Found.txt");
    	in3 >> s3;
    	in3.close();
    	cout << "Содержимое файла Found.txt: " << endl << s3 << endl;
    	int CountFound = 0;
    	int k = 1;
    	while (k != 4095)
    	{
    		if (s3[k] > s3[k + 1])
    			CountFound++;
    		k++;
    	}
    	cout << "Общее кол-во человек = " << CountFound << endl << "\a";
    	cout << "________________________________________________________________________________";
    	system("pause");
    }

    Универ, 1-й курс. Необходимо было написать программу, на вход которой даётся 2 файла, содержащих 1 и 0, и 1 файл, содержащий диапазон чисел от 1 до 9, показывающих кол-во человек в кадре абстрактной камеры одновременно. Местоположение каждого файла строго определено. И да, не пытайтесь вдуматься, что обозначают названия папок в путях, так как смысла там никакого нет)

    Z1VR, 14 Ноября 2015

    Комментарии (65)
  4. PHP / Говнокод #19024

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?php
    
    // ...
    
    if (isset($cache[$domain_id]) && isset($cache[$domain_id]) && !empty($cache[$domain_id])) {
        return $cache[$domain_id];
     }
    
    // ... 
    ?>

    Код для самых неуверенных и параноиков, кто сомневается в работе PHP. Ну или если вы неправильно разгоните свой процессор, и он начнет выдавать неправильные результаты операций.

    Расшифровка следующая:
    (если есть такой) и (если такой точно есть прям) и (он как бы есть на самом деле)

    jazinbazin, 13 Ноября 2015

    Комментарии (4)
  5. PHP / Говнокод #19023

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    $uri = isset($endpoint['path']) ? $endpoint['path'] : null;
            if (!isset ($uri)) {
                $uri = "/";
            }

    вместо $uri = isset($endpoint['path']) ? $endpoint['path'] : '/';

    snayps, 13 Ноября 2015

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

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    private function urlEncoder($val)
        {
            return str_replace('%7E', '~', rawurlencode($val));
        }  
      
        private function getParametersAsString(array $data)
        {
            $params = [];
            foreach ($data as $key => $val)
                $params[] = $key .'='. $this->urlEncoder($val);
            return implode('&', $params);
        }

    методы urlEncoder и getParametersAsString кривая замена стандартным функциям urlencode и http_build_query

    snayps, 13 Ноября 2015

    Комментарии (32)
  7. PHP / Говнокод #19021

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach($this->styles as $media=>$style){
    	foreach($this->styles as $path){
    		$output .= '<link type="text/css" href="'.$path.'" rel="stylesheet" media="'.$media.'" />'."\n";
    	}
    }

    лолшто?

    gorky, 13 Ноября 2015

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

    +2

    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
    class/View.php
    
    <?php
    
    class View {
    
    ...
    
      public function compile() {
        $view_src = file_get_contents(VIEW_SRC_PATH . $this->full_name . EXT);
        // echo
        $view_src = preg_replace("/\{\{(\w+)\}\}/", "<?php echo \$$1; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\|(\w+)\}\}/", "<?php echo \$$1['$2']; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\.(\w+)\}\}/", "<?php echo \$$1->$2; ?>", $view_src);
        // foreach
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$2 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\|(\w+)-->/", "<?php foreach(\$$2['$3'] as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$2->$3 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$3->$4 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$3 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each-->/", "<?php endforeach; ?>", $view_src);
        // switch
        $view_src = preg_replace("/<!--select\s+(\w+)\.(\w+)-->\s*<!--when\s+(.+)-->/", "<?php switch(\$$1->$2): case $3: ?>", $view_src);
        $view_src = preg_replace("/<!--when\s+(.+)-->/", "<?php break; ?><?php case $1: ?>", $view_src);
        $view_src = preg_replace("/<!--otherwise-->/", "<?php break; ?><?php default: ?>", $view_src);
        $view_src = preg_replace("/<!--select-->/", "<?php endswitch; ?>", $view_src);
        if (!file_exists(VIEW_PATH . $this->path)) mkdir(VIEW_PATH . $this->path, 0777, true);
        $fp = fopen(VIEW_PATH . $this->full_name . EXT, 'w');
        fwrite($fp, $view_src);
        fclose($fp);
      }
    
    ...
    
    ?>
    
    view-src/ShadeType.php
    
    {{type.name}}
    <!--each k d in type.diameters-->
    <h1>{{k}}</h1>
      <!--each s in d-->
      <div>
        {{s.bottom}} × {{s.top}} × {{s.height}}
        <div>
          <!--select s.mode-->
          <!--when 'u'-->(на ушках)
          <!--when 'p'-->(только подвес)
          <!--otherwise--> 
          <!--select-->
        </div>
      </div>
      <!--each-->
    <!--each-->
    
    view/ShadeType.php
    
    <?php echo $type->name; ?>
    <?php foreach($type->diameters as $k => $d): ?>
    <h1><?php echo $k; ?></h1>
      <?php foreach($d as $s): ?>
      <div>
        <?php echo $s->bottom; ?> × <?php echo $s->top; ?> × <?php echo $s->height; ?>
        <div>
          <?php switch($s->mode): case 'u': ?>(на ушках)
          <?php break; ?><?php case 'p': ?>(только подвес)
          <?php break; ?><?php default: ?> 
          <?php endswitch; ?>
        </div>
      </div>
      <?php endforeach; ?>
    <?php endforeach; ?>

    На хостинге PHP 5.2, а старые версии фреймворков не хочется. Решил запилить свой.

    kgm-rj, 13 Ноября 2015

    Комментарии (149)
  9. PHP / Говнокод #19018

    +13

    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
    <?php
      $lines = file('quest.txt');
      if($_POST['Quest'] == "") {
        echo "<HTML>";
        echo "<HEAD>";
        echo "<TITLE>Тестер</TITLE>";
        echo "<script language=JavaScript type=text/javascript>";
        echo "<!-- " . "\n";
        echo "var differ = 90*60;";
        echo "function timer() {";
        echo "var hours, minutes, seconds;";
        echo "differ = differ - 1;";
        echo "document.forms['vopros'].TimeLeft.value=differ;";
        echo "hours = Math.floor(differ/(60*60));";
        echo "hours = (hours >= 60) ? hours%60 : hours;";
        echo "hours = (hours < 10) ? \"0\" + hours : hours;";
        echo "minutes = Math.floor(differ/(60));";
        echo "minutes = (minutes >= 60) ? minutes%60 : minutes;";
        echo "minutes = (minutes < 10) ? \"0\" + minutes : minutes;";
        echo "seconds = differ;";
        echo "seconds = (seconds >= 60) ? seconds%60 : seconds;";
        echo "seconds = (seconds < 10) ? \"0\" + seconds : seconds;";
        echo "var strDate =  hours + \":\" + minutes + \":\" + seconds;";
        echo "document.forms['timerForm'].timerBox.value=strDate;";
        echo "if (differ<=0) {";
        echo "  document.forms['vopros'].Quest.value=100;";
        echo "  vopros.submit();";
    ... (и так далее)

    Отличный кодец из дипломной работы студента!

    RigFox, 13 Ноября 2015

    Комментарии (179)
  10. C++ / Говнокод #19017

    +6

    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
    #include "stdafx.h"
    #include "hackery.h"
    #include <cstdint>
    #include <windows.h>
    
    
    /*XXX*/
    unsigned char udiv128Data[] =
    {
      0x48, 0x89, 0xD0, // mov rax,rdx
      0x48, 0x89, 0xCA, // mov rdx,rcx
      0x49, 0xF7, 0xF0, // div r8
      0x49, 0x89, 0x11, // mov [r9],rdx
      0xC3              // ret
    };
    
    /*XXX*/
    unsigned char sdiv128Data[] =
    {
      0x48, 0x89, 0xD0, // mov rax,rdx
      0x48, 0x89, 0xCA, // mov rdx,rcx
      0x49, 0xF7, 0xF8, // idiv r8
      0x49, 0x89, 0x11, // mov [r9],rdx
      0xC3              // ret
    };
    
    unsigned __int64(__fastcall *udiv128)(unsigned __int64 numhi, unsigned __int64 numlo, unsigned __int64 den, unsigned __int64* rem);
    
    __int64(__fastcall *sdiv128)(__int64 numhi, __int64 numlo, __int64 den, __int64* rem);
    
    namespace {
    struct Q {
      Q() {
        /*XXX*/
        udiv128 = reinterpret_cast<unsigned __int64(__fastcall *)(unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64*)>(&udiv128Data[0]);
        /*XXX*/
        sdiv128 = reinterpret_cast<__int64(__fastcall *)(__int64, __int64, __int64, __int64*)>(&sdiv128Data[0]);
        /*XXX*/
        DWORD dummy;
        /*XXX*/
        VirtualProtect(udiv128Data, sizeof(udiv128Data), PAGE_EXECUTE_READWRITE, &dummy);
        /*XXX*/
        VirtualProtect(sdiv128Data, sizeof(sdiv128Data), PAGE_EXECUTE_READWRITE, &dummy);
      }
    } q;
    }

    Вот такая вот загогулина получилась по причине того что в 64-х битной Вижуал Студии нет встроенного асма, нет интринсика для простой асмовой команды, но мне вот надо именно полное деление 128-битного числа на 64-х битное именно с остатком и мне совершенно фиолетово на то что Майкрософт думает на тему вредности команды DIV и заменимости деления умножением на обратное. Да, и мне влом усложнять структуру проекта и линковать какие-то символы с внешнего асма.

    MinorThreat, 12 Ноября 2015

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