-
+50
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
if (tp==-1 || c==a[tp]-'a') tp++; else {
l[ts+1]=la; p[ts+1]=ts;
l[ts]=l[tv]; r[ts]=tp-1; p[ts]=p[tv]; t[ts][c]=ts+1; t[ts][a[tp]-'a']=tv;
l[tv]=tp; p[tv]=ts; t[p[ts]][a[l[ts]]-'a']=ts; ts+=2;
tv=s[p[ts-2]]; tp=l[ts-2];
while (tp<=r[ts-2]) { tv=t[tv][a[tp]-'a']; tp+=r[tv]-l[tv]+1;}
if (tp==r[ts-2]+1) s[ts-2]=tv; else s[ts-2]=ts;
tp=r[tv]-(tp-r[ts-2])+2; goto suff;
}
Говнокод олимпиадный.
http://e-maxx.ru/algo/ukkonen
gost,
09 Сентября 2014
-
+53
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
long int p, q, n, t, flag, e[100], d[100], temp[100], m[100], en[100], j, i;
char msg[100];
long int cd(long int x)
{
long int k = 1;
while (1)
{
k = k + t;
if (k%x == 0)
return(k / x);
}
}
int prime(long int pr)
{
int i;
j = sqrtl(pr);
for (i = 2; i <= j; i++)
{
if (pr%i == 0)
return 0;
}
return 1;
}
void ce()
{
int k;
k = 0;
for (i = 2; i<t; i++)
{
if (t%i == 0)
continue;
flag = prime(i);
if (flag == 1 && i != p&&i != q)
{
e[k] = i;
flag = cd(e[k]);
if (flag>0)
{
d[k] = flag;
k++;
}
if (k == 99)
break;
}
}
}
void encrypt()
{
long int pt, ct, key = e[0], k, len;
i = 0;
len = strlen(msg);
while (i != len)
{
pt = m[i];
pt = pt - 96;
k = 1;
for (j = 0; j<key; j++)
{
k = k*pt;
k = k%n;
}
temp[i] = k;
ct = k + 96;
en[i] = ct;
i++;
}
en[i] = -1;
printf("\nTHE ENCRYPTED MESSAGE IS\n");
for (i = 0; en[i] != -1; i++)
printf("%c", en[i]);
}
трушные функции
falcon_,
08 Сентября 2014
-
+54
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Exchange::Params pars = rawParams;
for(Exchange::Params::const_iterator i = rawParams.constBegin(); i!= rawParams.constEnd(); i++){
LOGN() << "Work with " << i.key() << "=" << i.value();
if(m_specific.contains(i.key())){
pars[i.key()] =
(this->*m_specific.value(i.key())) (i.value()); //черная магия :)
}
}
Наследие из большого рабочего проекта.
Чтобы сохранить ясность ума на весь день решил не пытаться понять что оно делает.
FlySnake,
08 Сентября 2014
-
+57
Actine,
05 Сентября 2014
-
+51
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
void Snake::turnSnake(const int key)
{
QPoint pos = components_of_snake.last().topLeft();
QPoint temp = pos;
bool wasTurned = false;
if((key == Qt::Key_Right) && (side_turn != LEFT))
{
side_turn = RIGHT;
pos.rx() += SIZE_OF_COMPONENT;
wasTurned = true;
}
else if((key == Qt::Key_Left) && (side_turn != RIGHT))
{
side_turn = LEFT;
pos.rx() -= SIZE_OF_COMPONENT;
wasTurned = true;
}
else if((key == Qt::Key_Up) && (side_turn != DOWN))
{
side_turn = UP;
pos.ry() -= SIZE_OF_COMPONENT;
wasTurned = true;
}
else if((key == Qt::Key_Down) && (side_turn != UP))
{
side_turn = DOWN;
pos.ry() += SIZE_OF_COMPONENT;
wasTurned = true;
}
if(wasTurned)
{
components_of_snake.last().moveTo(pos);
_cathUpHead(temp);
}
}
Метод поворота для змейки)
darkKnight,
03 Сентября 2014
-
+61
- 1
int len = dynamic_cast<GatewayRec *>(*Iter)->PrefixMatch(aliases, matchedalias, priority);
gnugk
bormand,
02 Сентября 2014
-
+53
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
void nearest(double v) {
double d = 0.1;
double v2 = v + d;
double v3;
double v4;
while (v2 != v) {
v3 = v + d;
v4 = v - d;
d = d * 0.9;
v2 = v + d;
}
qDebug() << QString::number(v2,'f',30) << QString::number(v3,'f',30) << QString::number(v4,'f',30);
}
void roundTest() {
double v1 = 1.90;
double v2 = 1.91;
QString vr1 = QString::number((v1+v2)*0.5,'f',2);
QString vr2 = QString::number((v1+v2)*0.500000000000000111022302462516,'f',2);
qDebug() << vr1 << vr2;
}
#define DOUBLE_HALF 0.500000000000000111022302462516
Когда-нибудь меня за это побьют
overloop,
29 Августа 2014
-
+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
for (conn_vector::iterator i = m_connections.begin(); i != m_connections.end(); ++i) {
if (*i == conn) {
m_connections.erase(i);
toDelete = *i;
break;
}
}
Да, С++98. Да, в std::find не умеем. Да, сегфолт. Да, моё.
Elvenfighter,
27 Августа 2014
-
+144
- 1
- 2
- 3
- 4
- 5
- 6
- 7
for (conn_vector::iterator i = m_connections.begin(); i != m_connections.end(); ++i) {
if (*i == conn) {
toDelete = *i;
m_connections.erase(i);
break;
}
}
Да, С++98. Да, в std::find не умеем. Да, сегфолт. Да, моё.
Elvenfighter,
27 Августа 2014
-
+58
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
void Model::setPosition(GLfloat x, GLfloat y, GLfloat z) {
if (m_position == NULL) {
m_position = (float *) malloc(3 * sizeof(float));
}
if (m_position != NULL) {
m_position[0] = x;
m_position[1] = y;
m_position[2] = z;
}
}
void Model::setRotate(GLfloat x, GLfloat y, GLfloat z) {
if (m_rotate == NULL) {
m_rotate = (float *) malloc(3 * sizeof(float));
}
if (m_rotate != NULL) {
m_rotate[0] = x;
m_rotate[1] = y;
m_rotate[2] = z;
}
}
http://code.google.com/p/forget3d/
Во первых, умиляет умение людей взяв современный супернавороченый удобный автомат, вместо того чтоб нажать на курок и выстрелить в противника, взять этот автомат наперевес как дубинку, и идти им пиздить противника по голове. Я о сишке, слегка прикрытой крестами.
И во вторых, этот код при недостатке памяти просто нифига не делает, что чревато непонятками - вроде и повертел модель, вроде и подвинул, а оно никак не вертится и не двигается.
Pythoner,
27 Августа 2014