A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre. Egy egyszerű háttértáron található fájlokat és azok egyes darabjainak elhelyezkedését mutatja az alábbi táblázat:
1. idojaras.txt 160 0 2. --- 17 5 3. mese.doc 180 0 4. --- 20 2 5. --- 5 10 6. mese.doc 28 3 7. hoember 128 0 8. mikulas.jpg 560 0 9. hoember 47 7 10. --- 633 0 A táblázat sorai (legföljebb 100 000 sor) a háttértár egymást követő különböző méretű részeit jelentik. Minden sorban elsőként a tárolt állomány neve, vagy három kötőjel szerepel (a sorszámokat csak a könnyebb érthetőség miatt írtuk ki, a táblázatban nem szerepelnek). A fájlnév az angol abc kisbetűit és esetleg egy pontot tartalmaz, a három kötőjel a háttértár szabad területét jelzi. A fájlnév, illetve ,,---'' után szóközzel elválasztva a fájl, vagy szabad rész adott darabjának méretét adja (1 és 100 000 közötti egész), valamint egy szóköz után a következő rész helyét a táblázatban (pozitív egész, illetve zérus, ha ez a fájl, vagy szabad rész vége). Készítsünk programot, amely megadja a fenti szerkezetű háttértár állományait és szabad területét abc sorrendben. A név után szóközzel elválasztva megjeleníti a fájl teljes méretét, valamint megfelelő sorrendben az állomány által elfoglalt területek kezdetét és végét kötőjellel elválasztva. A fenti példa esetén a kimenet:
hoember 175 1099-1145 411-538 idojaras.txt 160 1-160 mese.doc 208 383-410 178-357 mikulas.jpg 560 539-1098 --- szabad 675 358-377 161-177 378-382 1046-1078 A program a be- és kimeneti fájlok nevét a parancssorból olvassa be, használata például S23.exe bemenet.txt kimenet.txt. A bemeneti állomány a fenti példa szerinti szerkezetű (sorszámok nélkül). A programokat több bemeneti állománnyal is teszteljük, teljes pontszámot csak a több tízezer fájl esetén is néhány perc alatt eredményt adó megoldások kaphatnak. Beküldendő a megoldást tartalmazó program forrásállománya (S23.pas, S23.cpp, ), valamint a megoldás rövid dokumentációja (S23.txt, S23.pdf, ). |