WPC-Aufgabe (Programmierwettbewerb)
-
Doch, 290 geht. Das hab ich natürlich auch von Anfang an gehabt, 304 war nur, um euch zu foppen.
-
jupp ok habs auch: 5 mal die 1
cu
-
Klar, Standard-Lib ist erlaubt! Ja, die getter/setter müssen natürlich const sein.
Ich änder's gleich noch in der Aufgabenstellung.Die Geschenke haben natürlich alle ein Gewicht echt größer 0.
MfG Jester
-
Jester schrieb:
Klar, Standard-Lib ist erlaubt!
hash_map ist doch aber nur ne standard extension, oder etwa nicht?
-
Ist auch wieder wahr. Aber wenn ne Hashmap hilft, dann soll's mir recht sein.
-
Was ist die Referenz, ob das Programm standardkonform genug ist? Ich kann beim VC++ 8 size_t benutzen ohne std:: ist das normal?
-
Also ich denke mal nicht, dass Du mit einer Strafe rechnen musst, wenn noch ein "std::" irgendwo vor muss
-
Wenn da sowas wie ein std:: fehlt, dann ist das kein Problem. Ich prüfe sicher nicht jedes Detail nach.
Nur, wenn ich das nicht mit geringem Aufwand kompiliert krieg (weil grobe Syntaxfehler drin sind), dann werde ich's halt rausschmeißen.
-
@Korrektheit: Mit der Formulierung wollte ich aussagen, daß die Lösung natürlich korrekt arbeiten muß und andernfalls ausgeschlossen wird.
-
Mein Algorithmus läuft mit Visual C++ (STLPort) mehr als doppelt so schnell als mit GCC... liegt das eher an der STL-Implementierung oder an was anderem?
-
TomasRiker schrieb:
Mein Algorithmus läuft mit Visual C++ (STLPort) mehr als doppelt so schnell als mit GCC... liegt das eher an der STL-Implementierung oder an was anderem?
Profiler.
-
hash_map ist nen bischen ungeschickt, da viele Standard-Libs die zwar anbieten, aber oft nen anderes Interface haben.
Wäre es daher nicht klüger zu sagen, alle sollen STLPort verwenden?
-
Ne, darauf hab ich keine Lust. Im Zweifelsfall würde ich halt sagen, er muss die nötigen Header für hash_map mitliefern.
-
Können wir davon ausgehen, dass gewicht1 + gewicht2 € { Wertebereich von unsigned int } ?
Wenn nicht, wär's auch nicht so schlimm, nur wissen würde ich es gerne. :xmas1:
-
Eigentlich wäre es schon gut, wenn alle STLPort nehmen würden. Dann hätte man einen Unsicherheitsfaktor, nämlich die STL-Implementierung, weniger im Spiel.
Leider kriege ich es absolut nicht hin, STLPort unter Dev-C++ zum laufen zu kriegen. Hat es jemand von Euch schonmal probiert?
Das Builden mit make klappt nicht und das direkte Verwenden der Header (ohne IO-Streams, was laut INSTALL-Datei eigentlich funktionieren sollte) geht auch nicht.
-
Siehste, kriegst es nichtmal hin.
:xmas1:
Und ich werde es auch nicht hinkriegen. Ich code einmal im Jahr in C++, mir fehlt da die Routine mit include-path, lib-path setzen, usw.Aber mal Ernst, welchen Unsicherheitsfaktor meinst du? Wenn du etwas nehmen willst, was nicht aus der STL ist, spricht doch nichts dagegen, du kannst ja den Header mitgeben. Dein Programm ist sicher nicht standardkonform, wenn du eine erweiterte STL voraussetzt.
-
Michael E. schrieb:
// 'ne Menge Code
Kompiliert mit VC++ 2003 Toolkit auf Speed optimiert komm ich auf folgende Ausgabe:
5 174 824
722 308 723Wie siehts bei euch aus?
Ich krieg
initialized 518186 116811652 Drücken Sie eine beliebige Taste . . .
Ich kann aber noch nicht mit Sicherheit sagen, dass ich alles hundertprozentig richtig mache. Zumindest krieg ich aber die 290 raus.
EDIT: Ich vermute random_shuffle ist nicht gleich. Ich biete nochmal ne feste Folge an:
vector<unsigned int> list; list.push_back(98324); list.push_back(876); list.push_back(7654); list.push_back(90); list.push_back(872365); list.push_back(7828); list.push_back(2837); list.push_back(28376); list.push_back(82376); list.push_back(28374);
Ergebnis: 1136412
-
Optimizer schrieb:
Können wir davon ausgehen, dass gewicht1 + gewicht2 € { Wertebereich von unsigned int } ?
Wenn nicht, wär's auch nicht so schlimm, nur wissen würde ich es gerne. :xmas1:Ja, da könnte ihr von ausgehen.
-
Optimizer schrieb:
Ich biete nochmal ne feste Folge an:
vector<unsigned int> list; list.push_back(98324); list.push_back(876); list.push_back(7654); list.push_back(90); list.push_back(872365); list.push_back(7828); list.push_back(2837); list.push_back(28376); list.push_back(82376); list.push_back(28374);
Ergebnis: 1136412
Krieg ich auch raus.
-
Mit Visual C++ schaffe ich:
444535
125194854Mit Dev-C++ leider nicht...
es scheint an der STL-Implementierung zu liegen.
STLPort ist da fast doppelt so schnell (darum will ich's ja auch benutzen)!