Feladat: S.37 Korcsoport: - Nehézségi fok: -
Füzet: 2008/szeptember, 361 - 362. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb feladat

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.

A Bergengóciai Félvezetőgyár kétmagos processzorok bevezetését tervezi. Az új processzorok esetében is szeretnék alkalmazni azt a már jól bevált módszert, hogy az egyes legyártott példányokat nem előre meghatározott sebességtartományokba sorolják, hanem minden egyes példányra méréssel meghatározzák azt a legnagyobb órajelet, amelyen az hosszú távon biztonságosan üzemeltethető, és a processzort e frekvencián árulják. Mivel a legyártott chipek minősége széles tartományban változik, a gyártó kínálatában a legkülönfélébb órajeleken üzemelő processzorok megtalálhatók.
A vállalat új, kétmagos processzorai gyakorlatilag két egymagos processzorból állnak, melyeket egybe tokoznak. Noha az egyenkénti gyártás miatt a magok legnagyobb órajele eltér, a két mag csak azonos frekvencián üzemeltethető, a kettő minimumán. A gazdaságosság érdekében ezért a magokat úgy kell párosítani, hogy legnagyobb órajelük csak kis mértékben térjen el.
Írjunk programot, mely a legyártott magok közül a lehető legtöbbet párosítja úgy, hogy egy páron belül a két mag legnagyobb órajele egy adott tűréshatárnál nem tér el jobban egymástól. A program a legyártott processzormagok legnagyobb órajeleit fájlból olvassa, az eredményt fájlba írja. A bemeneti, illetve kimeneti fájlok nevei az első, illetve második parancssori argumentumok.
A bemeneti fájl első sorában két, szóközzel elválasztott egész szám: a legyártott processzormagok 0N10000000 száma és a 0T1000 tűréshatár szerepel, az ezt követő N sor mindegyikében pedig egy-egy egész szám: az (i+1)-edik sorban az i-edik mag megengedhető legnagyobb 1Fi10000 órajele. A kimeneti fájl első sorában az elkészíthető párok maximális P száma szerepeljen, az ezt követő P darab sorban pedig a párokban szereplő két mag sorszáma egymástól szóközzel elválasztva. A párok kiírásának sorrendje tetszőleges, több megoldás esetén bármelyik megadható.

 
 

Beküldendő a program forráskódja (s37.pas, s37.cpp, ...), valamint a program rövid dokumentációja (s37.txt, s37.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.