000
31.03.2004, 20:11 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Ok, ihr habt mich erwischt, es geht wieder um das Thema vom ersten FloSoft Rätsel.
Ich habe nun folgende Datei:
4 Bytes (=sizeof(unsigned long) ) Offset 4 Bytes (=sizeof(unsigned long) ) Size Size Bytes (=Size*sizeof(BYTE) ) Data ...
Man schreibe nun ein Programm/Routine welches folgendes macht:
Es sucht alle Blöcke wessen Size < 2 ist (also 1 oder 2) und deren Abstand zum vorherigen/nächsten Block < 8 ist, und läd aus der zugrundeliegenden Datei (aus denen die Blocks erstellt wurden, siehe 1ste Rätsel) die fehlenden Bytes zwischen den 2 Blocks, fügt die Bytes dem vorherigen/nächsten Block hinzu, fügt auch den aktuellen Block (also der mit der Size < 2) dem vorherigen/nächsten Block hinzu und ändert diesen entsprechend.
Um es kurz zu fassen, man soll alle Blocks, welche kleiner als 2 Bytes und deren Abstand zu seinen Nachbarn kleiner als 8 Bytes ist, "weg"-optimieren.
(Abstand kleiner 8 Bytes, da jeder Block 8 Bytes Overhead mit sich bringt, was nur bei möglichst wenigen und großen Blocks einen Vorteil in der Dateigröße bringt.) -- class God : public ChuckNorris { }; |