- 1
strlen(s + 5);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+143
strlen(s + 5);
"А чего это оно на 10 символов меньше чем надо возвращает?"
+133
if (other && other->client && other->s.number < MAX_CLIENTS)
{//player touched me
/*
char *text;
qboolean keyTaken;
//give him my key
...
*/
//rwwFIXMEFIXME: support for goodie/security keys?
/*
if ( keyTaken )
{//remove my key
NPC_SetSurfaceOnOff( self, "l_arm_key", 0x00000002 );
self->message = NULL;
//FIXME: temp pickup sound
G_Sound( player, G_SoundIndex( "sound/weapons/key_pkup.wav" ) );
//FIXME: need some event to pass to cgame for sound/graphic/message?
}
//FIXME: temp message
gi.SendServerCommand( NULL, text );
*/
}
FIXMEFIXMEFIXME... Да ну нахуй, лучше все закомментим.
+134
#include <stdio.h>
#define max(x,y) ((x>y)?x:y)
#define N 255
typedef unsigned char uchar;
uchar s,t,x,y,z,n,S[10000],FO[N+N*(N-1)/2];
uchar mask[]={1,2,4,8,16,32,64,128};
int TOP=0;
unsigned int COUNTER=0,AO[N];
FILE *in;
int pop(){
//if the top element in the stack is passed and stack is not empty,
//find next parent vertex
while(S[TOP]>128 && TOP>0) TOP-=S[TOP]-128;
return(TOP);
}
int push(){ //add new elements to the stack
int tmp=TOP,i,j,k; //tmp is a temporary variable
x=S[TOP-S[TOP]+1]; //x is a parent vertex
for(i=1;i<=FO[AO[x]];i++){
y=FO[AO[x]+i]; //y is a neigbour of x
if(!test(y)){ //y is visited? if not keep going
k=max(y/8+1,S[TOP]-2); //copy set P(x) to the new set P(y)
S[++tmp]=y;
for(j=0;j<k;j++,S[++tmp]=0);
S[++tmp]=k+2;
for(j=1;j<=S[TOP]-2;j++) S[tmp-j]=S[TOP-j];
S[tmp-(y/8+1)]|=mask[y-(y/8)*8]; //add child y to P(y)
}
}
S[TOP]+=128; //drop flag for the vertex x
TOP=tmp; //the last child y become parent
}
int test(int j){ //does vertex j in the set P(TOP)?
z=((j/8+1)>S[TOP]-2)?0:(S[TOP-(j/8+1)] & mask[j-(j/8)*8])?1:0;
return(z);
}
int inc(){ //the path was found
COUNTER++;
S[TOP]+=128;
}
int main(){
int i,j,k;
in=fopen("Data15.txt","r"); //open file
fscanf(in," %d %d",&i,&n); //read the number of vertices
for(k=n,i=0;k>=0;k--){
fscanf(in,"%d %d",&j,&FO[i]);
j=FO[i];
for(AO[n-k]=++i-1;j>0;j--,i++){
fscanf(in,"%d ",&FO[i]);
}
}
printf("Type first and end nodes: "); //type s and t separated by space
scanf("%d %d",&s,&t);
S[0]=s;
for(j=1;j<=s/8+1;S[j++]=0);
S[j]=s/8+3;
TOP=j;
S[TOP-(s/8+1)]|=mask[s-(s/8)*8];
while(pop()>=0) (test(s) && test(t))?inc():push(); //launch breadth-search algorithm
printf("# of paths in the graph b/w s=%d and t=%d equals %d\n",s,t,COUNTER);
return(0);
}
разбирая старый CD бэкап откопал лабу...(знаю,знаю что продакшн кошернее, и на сях не пишу со студенчества)
хотел вайпнуть безжалости но вспомнил про говнокодосайт.
помоему код люто доставляет.
прога подсчитывает полное число путей в графе между заданными вершинами s и t.
граф считывается из файла в формате: "номер_вершины степень_вершины {достижимые_вершины_через_пробел}"
(по коду видно)
+142
static char months [] = "JanFebMarAprMayJunJulAugSepOctNovDecGlk";
static char dows [] = "SunMonTueWedThuFriSatEar";
int dd [] =
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
void gen_http_date (char date_buffer[29], int time) {
int day, mon, year, hour, min, sec, xd, i, dow;
if (time < 0) time = 0;
sec = time % 60;
time /= 60;
min = time % 60;
time /= 60;
hour = time % 24;
time /= 24;
dow = (time + 4) % 7;
xd = time % (365 * 3 + 366);
time /= (365 * 3 + 366);
year = time * 4 + 1970;
if (xd >= 365) {
year++;
xd -= 365;
if (xd >= 365) {
year++;
xd -= 365;
if (xd >= 366) {
year++;
xd -= 366;
}
}
}
if (year & 3) {
dd[1] = 28;
} else {
dd[1] = 29;
}
for (i = 0; i < 12; i++) {
if (xd < dd[i]) {
break;
}
xd -= dd[i];
}
day = xd + 1;
mon = i;
assert (day >= 1 && day <= 31 && mon >=0 && mon <= 11 &&
year >= 1970 && year <= 2039);
sprintf (date_buffer, "%.3s, %.2d %.3s %d %.2d:%.2d:%.2d GM",
dows + dow * 3, day, months + mon * 3, year,
hour, min, sec);
date_buffer[28] = 'T';
}
Делать имена месяцев и дни недели одной сишной строкой, чтобы потом выводить оттуда по три символа через sprintf, считая оффсет умножением на 3 т.к. имена месяцев и дней недели влазят в три символа
https://github.com/vk-com/kphp-kdb/blob/ce1ac4fbde2d3b546936ad07d6a748958f6d2198/net/net-http-server.c#L664
http://roem.ru/2013/07/20/kphp76561/
>ВКонтактовские "олимпиадники"-чемпионы ACM разработали крайне интересную высоконагруженным сайтам технологию.
Хреновые какие-то олимпиадники попались, раз неосилили http://ideone.com/IfvBgi
+139
#if _FP_W_TYPE_SIZE < 32
#error "Here's a nickel, kid. Go buy yourself a real computer."
#endif
https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/master/include/math-emu/quad.h
+139
#include <stdio.h>
#include <stdlib.h>
#define value_i int
#define gen_program main()
#define begin {
#define end }
#define sep ;
#define back_val return
#define vis(a) printf ("%d", a)
#define ln printf ("\n")
#define ln3 printf ("\n\n\n")
#define cycle_count for
#define rand rand()
#define gen_rand srand((unsigned)time(NULL))
#define value_c char
#define vis_c(a) printf("%c", a)
#define eq =
#define uneq !=
#define check ==
#define inc(a) a++
#define res %
#define add +
#define sub -
#define blank void
#define small <
#define big >
blank line(blank) sep
value_i gen_program
begin
value_i x, i sep
gen_rand sep
value_c c eq ' ' sep
cycle_count(i eq 1 sep i small 10 sep inc(i))
begin
x eq rand res 10 add 1 sep
if (x uneq 10)
begin
vis(x) sep
vis_c(c) sep
end
end
ln3 sep
line() sep
ln sep
back_val 0 sep
end
blank line(blank)
begin
value_i i sep
cycle_count (i eq 0 sep i small 10 sep inc(i) )
begin
printf("-/*\\") sep
end
printf("-") sep
end
Можно рефакторить.
+117
int mainCRTStartup()
{
int argc = 0;
char* argv[MAX_CMD_ARGS + 1];
char** pargv = argv;
char* cmdLine = strdup(GetCommandLineA());
int result = 0;
g_module = GetModuleHandle(NULL);
g_process = GetCurrentProcess();
g_thread = GetCurrentThread();
g_heap = GetProcessHeap();
for (*pargv = strtok(cmdLine, " "); *pargv && argc < MAX_CMD_ARGS; *pargv = strtok(NULL, " "))
{
++argc;
++pargv;
}
*pargv = NULL;
result = main(argc, argv);
free(cmdLine);
return result;
}
+128
#define STUPID_ACCELF_TEXT_SHIT
+142
static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
uint8_t *signature, UInt16 signatureLen)
{
OSStatus err;
...
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
...
Говно с яблочным привкусом.
http://habrahabr.ru/post/213525/
P.S.: Не уверен Си это или плюсы.
+140
#include<stdio.h>
int main()
{FILE*f1,*f2;
f1=fopen("input.txt","r");
f2=fopen("output.txt","w");
int i,j,k,l,n,m,l1,m1;
int a[100000]={0};
int b[100]={0},b1[100]={0};
fscanf(f1,"%d%d",&n,&k);
for(i=0;i<n;i++)
{fscanf(f1,"%d",&a[i]);
if (i==0) b[(a[i]%k+k)%k]=1;
else {for(j=0;j<k;j++)
if(b[j]==1) {b1[(a[i]%k+j+k)%k]=1; b1[(j-a[i]%k+k)%k]=1;}
for(j=0;j<k;j++)
{b[j]=b1[j]; b1[j]=0;}}}
if (b[0]==1) fprintf(f2,"Divisible");
else fprintf(f2,"Not divisible");
fclose(f1);
fclose(f2);
return 0;}
Динамический алгоритм. работа с остатками. тестировщик прожевал и выдал максимум:)