wpc108
-
Das ist meins
int wpc108sec(int* low, int* high, int num, int key) { int c = 0; // 5 while ( num -- ) // 5 low [ num ] <= key && key <= high [ num ] && ++ c; // 17 return c ; //3 } // 30
beziehungsweise (falls erlaubt)
int wpc108sec(int* low, int* high, int num, int key) { static int c; // 4 while ( num -- ) // 5 low [ num ] <= key && key <= high [ num ] && ++ c; // 17 return c ; //3 } // 29
die kürzeste Version die einmal funktioniert ist (inspiriert von deiner)
int wpc108sec(int* low, int* high, int num, int key) { static int c; // 4 while ( num -- ) // 5 c += low [ num ] <= key && key <= high [ num ]; // 16 return c ; //3 } // 28
ist aber bestimmt nicht erlaubt.
Deine Version funktioniert (EDIT: bin mir aber nicht sicher ob true immer garantiert 1 oder verschieden von 0 sein muss), aber ich bekomme das noch kürzer. Mal überlegen...
-
Mir ist noch was eingefallen... ist aber mit Sicherheit auch verboten! Wo kann man die Regeln für die einzelnen Kategorien (in dem Fall "code brevity") nachlesen? In den FAQs steht da nicht genaues zu.
int wpc108sec(int* low, int* high, int num, int key, int c = 0) { while ( num -- ) // 5 c += low [ num ] <= key && key <= high [ num ]; // 16 return c ; //3 } // 24
-
MaSTaH schrieb:
Mir ist noch was eingefallen... ist aber mit Sicherheit auch verboten! Wo kann man die Regeln für die einzelnen Kategorien (in dem Fall "code brevity") nachlesen? In den FAQs steht da nicht genaues zu.
int wpc108sec(int* low, int* high, int num, int key, int c = 0) { while ( num -- ) // 5 c += low [ num ] <= key && key <= high [ num ]; // 16 return c ; //3 } // 24
sie versuchen, leute rauszukicken. mit unter umständen völlig abstrusen gründen. mangelde ernsthaftigkeit zum beispiel. oder daß sie gepackte sachen nicht annehmen können.
es war nicht aufrufbarkeit gefordert, sondern explizit ein prototyp angegeben. die abweichung reicht denen betimmt als grund.
und das static-ding ist einfach falsch.übrigens steht "sec" für secure (sicher) oder so und ist die referenzimplemetierung. die andere verfummele ich immer und teste mit der main, ob auch ja kein fehler ist.
alle regeln kann man nicht nachlesen. sie erfinden auch gerne neue, um mich zu kicken. bestimmt schon 5 mal. wenn jemand ne neue regel erfährt, soll er sie doch bitte hier posten.
-
Mastah:
ich sehe die Kuerzung nicht.
Du hast naemlich vergessen das
,int c=0
mitzuzaehlen.
-
27
-
volkard schrieb:
27
auf 27 komme ich nur, wenn key unsigned ist
sonst bin ich auf 28
-
volkardus schrieb:
es war nicht aufrufbarkeit gefordert, sondern explizit ein prototyp angegeben. die abweichung reicht denen betimmt als grund.
Denke ich auch
volkardus schrieb:
und das static-ding ist einfach falsch.
Ja, aber nur, wenn sie öfter als einmal aufgerufen wird.
-
Shade Of Mine schrieb:
Mastah:
ich sehe die Kuerzung nicht.
Du hast naemlich vergessen das
,int c=0
mitzuzaehlen.Sieh es einfach als billigen Trick an :).
-
Wie seht ihr das? Wäre die Variante von cd9000 mit dem count += expression legal?
-
MaSTaH schrieb:
Wie seht ihr das? Wäre die Variante von cd9000 mit dem count += expression legal?
warum sollte es nicht legal sein?
-
EDIT: Ok, hab es schon selber geklärt
-
MaSTaH schrieb:
Deine Version funktioniert (EDIT: bin mir aber nicht sicher ob true immer garantiert 1 oder verschieden von 0 sein muss), aber ich bekomme das noch kürzer. Mal überlegen...
die acme softies sind nichzt standard-fixiert. wenn's auf jedem 'normalen' compiler klappt, nehmen die es. mal hab ich ne siegerlösung gesehen, die davon ausging, daß ein ascii-zeichensatz drunterliegt.
man fliegt übrigens, wenn man ne standard-lösung bringt, die der msvc nicht compiliert.
-
int wpc108(int* low, int* high, int num, int key) { int count = 0; // 5 while ( num -- ) // 5 count += key >= *low++ && key <= *high++; // 14 return count; //3 } // 27
-
Geo, das laeuft nicht.
high wird nicht immer erhoeht.
-
ja, hast recht.
vielleicht so:
int wpc108(int* low, int* high, int num, int key) { int count = 0; // 5 while ( num -- ) // 5 count += key >= *low++ & key <= *high++; // 14 return count; //3 } // 27
-
Geo schrieb:
vielleicht so:
int wpc108(int* low, int* high, int num, int key) { int count = 0; // 5 while ( num -- ) // 5 count += key >= *low++ & key <= *high++; // 14 return count; //3 } // 27
da stehe ich auch gerade
-
Shade Of Mine schrieb:
Geo schrieb:
vielleicht so:
da stehe ich auch gerade
ich auch. und ch habs schon weggeschickt, weil ich nix mehr sehe.
wird wohl 10 identische einsendungen geben und ein paar andere.
-
Mir fällt nichts mehr ein. Ich bastele schon seit ner Stunde an allen möglichen Abkützungen rum, aber immer wird es entweder ein Token länger statt kürzer oder es funktioniert nicht. Ich glaub ich gehe mal pennen! Gute Nacht!
-
Shade Of Mine schrieb:
Geo, das laeuft nicht.
high wird nicht immer erhoeht.Shade, biste besoffen?
-
volkardus schrieb:
Shade Of Mine schrieb:
Geo, das laeuft nicht.
high wird nicht immer erhoeht.Shade, biste besoffen?
Wieso?
count += key >= *low++ && key <= *high++;
wenn key >= *low++ false ergibt - was ja durchaus passieren kann, dann wird key <= *high++ ja nicht ausgewertet, folglich wird high nicht erhöht.Kann es sein, dass du dich verschaut hast? Mein Beitrag bezog sich auf die && Variante. Die & Variante hat Geo erst danach gepostet.