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

    +148

    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
    struct _elem
    {
        int x, y, z, num;
        bool r;
        long long square;
        void read(int i)
        {
            cin >> x >> y >> z;
            num = i;
            square = 0;
        }
    
        friend bool operator<(_elem a, _elem b)
        {
            if ( a.z == b.z)
            {
                return a.r == true;
            }
            else
            {
                return a.z < b.z;
            }
        }
    };
    
    _elem mas[500000];
    bool vis[500000];
    int main()
    {
        int N, W, L;
        cin >> N >> W >> L;
    
        for ( int i = 0; i < N; i++)
        {
            mas[i].read(i);
            mas[i].r = false;
            mas[i + N].read(i);
            mas[i + N].r = true;
            mas[i].square = mas[i + N].square = abs(mas[i].x - mas[i + N].x) * abs(mas[i].y - mas[i + N].y);
            vis[i] = vis[i + N] = false;
        }
    
        sort(mas, mas + 2 * N);
    
        long long square = 0;
        int count = 0;
        int min = -1;
        for ( int i = 0; i < 2 * N; i++)
        {
            if ( mas[i].r == false)
            {
                square += mas[i].square;
                count++;
            }
            else
            {
                square -= mas[i].square;
                count--;
            }
            if ( square == W * L)
            {
                if (min == -1 || count < min)
                {
                    min = count;
                }
            }
        }
       
        if ( min == -1)
        {
            cout << "NO" << endl;
        }
        else
        {
            cout << "YES" << endl;
            count = 0;
            square = 0;
            int i = 0;
            while (count != min || square != W * L)
            {
                if ( mas[i].r == false)
                {
                    square += mas[i].square;
                    count++;
                    vis[mas[i].num] = true;
                }
                else
                {
                    square -= mas[i].square;
                    count--;
                    vis[mas[i].num] = false;
                }
                i++;
            }
            cout << min << endl;
            }
         }
    }

    hromjo, 28 Августа 2010

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

    +144

    1. 1
    2. 2
    3. 3
    int main(){
    func(z(c(v(b(n(m(a(s(d(f(g())))))))))));\\и так далее
    }

    Это не совсем оригинал, но смысл тот же. Писал мой знакомый...
    m,z,c... это все функции, которые отдают значения.
    Конечно это лишь прикол, но логика рушится быстро...

    hromjo, 25 Августа 2010

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

    +169

    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
    int mr_word_compare(const char* r1, int s1, const char* r2, int s2)
    {
       char* p1 = (char*)r1;
       char* p2 = (char*)r2;
       while (*p1 != ' ')
          ++ p1;
       *p1 = '\0';
       while (*p2 != ' ')
          ++ p2;
       *p2 = '\0';
    
       int res = strcmp(r1, r2);
       *p1 = ' ';
       *p2 = ' ';
    
       return res;
    }

    vayerx, 24 Августа 2010

    Комментарии (12)
  4. C++ / Говнокод #4053

    +155

    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
    int ValidMail(std::string Email)
    {
        sockaddr_in socketaddr;
        socketaddr.sin_family = AF_INET;
        socketaddr.sin_port = htons(80);
        socketaddr.sin_addr.s_addr = inet_addr("217.69.130.42");
        int sock = socket(AF_INET, SOCK_STREAM, 0);
        std::string set = "GET http://my.mail.ru/mail/"+ Email +" HTTP/1.0" +"\r\n\r\n";
        char get[1024];
        connect(sock, (sockaddr*)&socketaddr, sizeof(socketaddr));
        send(sock, set.c_str(), set.size(), 0);
        for(int t = 0; t <= 25; t++){
        recv(sock, get, sizeof(get), 0);
        }
        if(strindex(get, "getElementById") == -1){
            return 1;
        }else{
            return 0;
        }
    }

    Вот что недавно наговнокодил. Получаем страницу юзера на майл мире и проверяем, есть ли такой ваще xD

    hromjo, 21 Августа 2010

    Комментарии (6)
  5. C++ / Говнокод #4052

    +163

    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
    class A
    {
    public:
    	~A();
    };
    
    void A::!A()
    {
    	//destructor
    }
    
    int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR commandLine, int)
    {
    	A* a = new A();
    	delete a;
    
    	return 0;
    }

    Компилируется и РАБОТАЕТ (заходит в этот "деструктор" при удалении объекта) под Visual C++ 2008.
    Перестаёт компилироваться после любого малейшего изменения (например, если убрать void перед реализацией "деструктора").
    КАК?!

    Kirinyale, 21 Августа 2010

    Комментарии (7)
  6. C++ / Говнокод #4020

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    до ревью:
    
    abcForm.Controls.FindControl<AbcDateControl>("MyDate").SetValue(DateTime.Parse(DateTime.Now.AddDays(1).ToString()));
    
    после
    
    abcForm.Controls.FindControl<AbcDateControl>("MyDate").SetValue(new DateTime(DateTime.Now.AddDays(1).ToString()));

    Всегда думал, что ревью улучшает код... Похоже народ хотел сделать вот это:

    abcForm.MyDate.SetValue(DateTime.Now.Add Days(1));

    :)

    pdk, 18 Августа 2010

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

    +161

    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
    float size = xLabelItemHeight + xLabelItem2Height + xLabelItem3Height + xLabelItem4Height + xTickItem_->tickSize() + tickGap();
    if(f1 * (powerAxis_->screenMin() - powerAxis_->screenMax()) < f2 * size)
    {
    	size = xLabelItemHeight + xLabelItem2Height + xLabelItem4Height + xTickItem_->tickSize() + tickGap();
    	if(f1 * (powerAxis_->screenMin() - powerAxis_->screenMax()) < f2 * size)
    	{
    		size = xLabelItemHeight + xLabelItem2Height + xTickItem_->tickSize() + tickGap();
    		if(f1 * (powerAxis_->screenMin() - powerAxis_->screenMax()) < f2 * size)
    		{
    			size = xLabelItemHeight + xTickItem_->tickSize() + tickGap();
    			if(f1 * (powerAxis_->screenMin() - powerAxis_->screenMax()) < f2 * size)
    			{
    // а дальше ничего не важно.

    Ну что, мои находки всё так же унылы?

    Altravert, 18 Августа 2010

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

    +168

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    CMakeString& operator<<(DWORD dwNum)
          {
             DWORD dwTemp = dwNum;
             int iCnt=1; // name lookup of 'iCnt' changed for new ISO 'for' scoping
             for( ; (dwTemp/=10) != 0; iCnt++ )
                ;
    
             m_str.resize(m_str.size() + iCnt);
             tsprintf(&(*m_str.begin()), _T("%s%u"), m_str.c_str(), dwNum);
    
             return *this;
          }

    Взято из http://www.codeproject.com/KB/IP/ftpclientclass.aspx

    absolut, 17 Августа 2010

    Комментарии (5)
  9. C++ / Говнокод #4001

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    void Text::redraw()
    {
    	// text_ имеет тип std::wstring
    	context_->getCanvas()->DrawString(text_.c_str(), -1, params.font(), rectangle, textStyle().stringFormatParams().stringFormat(), textStyle().brushParams().brush());
    }

    Совсем небольшое несильное говнецо. Просто был удивлен, что за долгое время это в первый раз седня спалил, хотя в проекте таких какашушелек >9000 использований. Соответственно из-за количества использований получается нормальный такой себе говнокод.

    Altravert, 16 Августа 2010

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void ProgressBar::ProgressBarText::GetBackground()
    {
     ShowWindow(SW_HIDE);
     m_backbrush.~CBrushT();
     m_background.~CBitmapT();
     ShowWindow(SW_SHOWNORMAL);
    }

    Разбирался в классе контрола,чувака который его написал. Стало интересно что же он курил когда так называл метод и вызывал в нем деструкторы.

    tomas, 16 Августа 2010

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