- 1
LONG bShutdownCounter;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
LONG bShutdownCounter;
Существует много баталий на тему венгерской нотации, есть много за и много против, но это - просто шедевр :)
+163
if( ( (i&&z&&z!=1) || (!i&&z&&z==1) ) || j )
{
...
}
условие
+159
BYTE p1,p2,p3,p4;
CString p;
ipa.GetAddress(p1,p2,p3,p4);
p.Format("%d.", p1);
s = p;
p.Format("%d.", p2);
s += p;
p.Format("%d.", p3);
s += p;
p.Format("%d", p4);
s += p;
AfxMessageBox(s);
книга "Microsoft Visual Studio и MFC", автор Т. Сидорина
ранее были объявлены
CIPAddressCtrl ipa;
CString s;
s.Format ("%d.%d.%d.%d", p1, p2, p3, p4); //мы не исчем лёгких путей
+161
width ? width-- : width;
height ? height-- : height;
Ахуй нехуевый. Не говнокод, наверно, но всё же.
+148
#include <cstdio>
#include <memory.h>
#define maxn 18
char c[maxn][maxn];
int d[1 << maxn];
int main()
{
freopen("network.in", "rt", stdin);
freopen("network.out", "wt", stdout);
int n; scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%s", c[i]);
memset(d, 0, sizeof(d));
for (int k = 0; k < (1 << n); k++)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (c[i][j] == 'Y' && k & (1 << i) && k & (1 << j) && d[k - (1 << i) - (1 << j)] + 2 > d[k])
d[k] = d[k - (1 << i) - (1 << j)] + 2;
int max = 0;
for (int i = 0; i < (1 << n); i++)
if (d[i] > max)
max = d[i];
printf("%d\n", max);
return 0;
}
ACM-задачка на динамику по подмножествам.
Кто поймет, тому 5 ;)
+152
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
template<typename T> class myVector {
private:
T* data; // Указатель на массив с данными
int count; //Кол-во элементов в векторе
T maxv, minv; // Максимальный и минимальный элементы
void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
{
if (leftarg < rightarg) {
T pivotvalue = a[leftarg];
int left = leftarg - 1;
int right = rightarg + 1;
for(;;) {
while (a[--right] > pivotvalue);
while (a[++left] < pivotvalue);
if (left >= right) break;
T temp = a[right];
a[right] = a[left];
a[left] = temp;
}
int pivot = right;
quicksort(a, leftarg, pivot);
quicksort(a, pivot + 1, rightarg);
}
}
public:
myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
{
}
~myVector() //Деструктор
{
if (data)
delete [] data;
}
void operator<<(const T &Value) //Оператор для добавления элемента в вектор
{
data = (T*)realloc(data, ++count * sizeof(T));
data[count-1] = Value;
if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
maxv = Value;
else
if (minv > Value)
minv = Value;
}
T& operator[](const int &Index)//Оператор [] для доступа по индексу
{
if (Index >= count) throw 1;
return data[Index];
}
void orderAsc(T *result) const //Сортировка по возрастанию
{
if (!data) throw 1;
memcpy(result, data, sizeof(T) * count);
quicksort(result, 0, count - 1);
}
void orderDesc(T *result) const
{
if (!data) throw 1;
memcpy(result, data, sizeof(T) * count);
quicksort(result, 0, count - 1);
int swap, b = count;
for(int a = 0; a < --b; a++) {
swap = result[a]; result[a] = result[b]; result[b] = swap;
}
}
T max() const
{
if (!data) throw 1;
return maxv;
}
T min() const
{
if (!data) throw 1;
return minv;
}
};
int main()
{
myVector<int> v;
for (int i = 0; i < 10; i++)
v << rand() % 100; // Заполняем рандомными элементами
for (int i = 0; i < 10; i++)
printf("%d ", v[i]); // Выводим их
printf("\n");
int *arr = new int[10];
v.orderAsc(arr); //Сортируем по возрастанию
for (int i = 0; i < 10; i++)
printf("%d ", *(arr + i)); //Выводим результат
printf("\n");
v.orderDesc(arr); //Сортируем по убыванию
for (int i = 0; i < 10; i++)
printf("%d ", *(arr + i));//Выводим результат
printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
delete [] arr;
}
Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко
+172
map<pair<pair<int,int>, int>, vector<pair<pair<int,int>, pair<int,int> > > > m;
великолепно потом пробегать по коллекции
+153
#define DOISA(x,p,y) \
ClassID x::isA() const{return y;} \
MYBoolean x::isA(ClassID i) const \
{ \
return (i == x::isA() ? TRUE : p::isA(i)); \
}
Ядро большого проекта. Имеется довольно большая иерархия наследуемых классов с виртуальными методами isA(). Все эти методы зачем-то сворачиваются в этот макрос.
+158
switch(filter)
{
case FILTER_SPECIAL:
{
if ( ( u8Direction >= 0xF0 ) || ( u8Direction <= 0x0F ) )
{
return 0x0;
}
else if ( ( u8Direction >= 0x10 ) && ( u8Direction <= 0x2F ) )
{
return 0x2;
}
else if ( ( u8Direction >= 0x30 ) && ( u8Direction <= 0x4F ) )
{
return 0x4;
}
else if ( ( u8Direction >= 0x50 ) && ( u8Direction <= 0x7F ) )
{
return 0x6;
}
else if ( u8Direction == 0x80 )
{
return 0x8;
}
else if ( ( u8Direction >= 0x81 ) && ( u8Direction <= 0xAF ) )
{
return 0xA;
}
else if ( ( u8Direction >= 0xB0 ) && ( u8Direction <= 0xCF ) )
{
return 0xC;
}
else if ( ( u8Direction >= 0xD0 ) && ( u8Direction <= 0xEF ) )
{
return 0xE;
}
break;
}
case FILTER_NORMAL:
--//--
break;
case FILTER_BACKWARD_DIRECTION:
--//--
break;
}
Сферический индокод в вакууме
+164
std::string str(bool val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(short val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned short val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(int val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned int val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(long val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned long val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(float val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(double val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(long double val) {
std::stringstream ss;
ss << val;
return ss.str();
}
Вот что значит невыспанная голова!
Чуть позже переделал в это
template<class T>
std::string str(T val) {
std::stringstream ss;
ss << val;
return ss.str();
}