cnnb.MyForum.ro
 
Advanced Search
   
 
Home Inregistrare FAQ Membri Grupuri  
 
 

Pagina de start a forumului cnnb.MyForum.ro Probleme, solutii Problema 2
Afiseaza mesajele pentru a le previzualiza:   
      Ora este GMT + 3 ore  
Creaza un subiect nou  Raspunde la subiect

06/10/2007 17:45
Autor Mesaj
cripton
Administrator
Administrator


Data inscrierii: 27/Sep/2007
Mesaje: 9

Titlul subiectului: Problema 2 Raspunde cu citat (quote)

newcomp
Eroul acestei probleme, Nafets, si-a cumparat un al doilea calculator. Bineinteles, el doreste acum sa lege cele doua calculatoare personale in retea. Totusi, softul de transfer de fisiere prin retea oferit de compania Moccasoft este mult prea costisitor. De aceea, Nafets s-a decis sa scrie el insusi pachetul necesar transferului de fisiere.
Cautand pe Net informatii despre softul pentru retea, a aflat ca mediul fizic in care se transmite informatia prin retea este instabil si la transferul de date pot aparea erori. De aceea, el s-a decis sa minimizeze probabilitatea aparitiei unor erori prin calcularea unei sume de control pentru fiecare fisier transferat.
Dupa un studiu indelungat, Nafets a ales un algoritm care i-a placut foarte mult. Algoritmul primeste la intrare un numar magic N si fisierul care trebuie transferat. Algoritmul trebuie sa priveasca fisierul de intrare ca un numar in baza 256, numar pe care il vom numi M (primul octet din fisier reprezinta cea mai semnificativa cifra a numarului M, urmatorul octet a doua cea mai semnificativa cifra samd). Suma de control pentru fisier este reprezentata de un numar X cu proprietatea ca restul impartirii lui MX la N este 0. MX reprezinta numarul in baza 256 obtinut prin concatenarea lui M cu numarul X. La operatiunea de concatenare, daca X are mai putin de 3 cifre semnificative (in baza 256), lui X i se vor adauga in stanga cifre de 0 pana cand se obtin 3 cifre (in baza 256).

Cerinta
Deoarece Nafets nu a mai programat de mult timp, va roaga pe voi sa scrieti modulul care calculeaza aceasta suma de control..

Date de intrare
Pe întâia linie a fisierului newcomp.in se gaseste numarul N, scris in baza 10.
Pe urmatoarea linie se gaseste fisierul care trebuie transferat, afisat ca o secventa de cifre in baza 256 separate prin spatiu. O cifra in baza 256 va fi reprezentata ca un numar intre 0 si 255 inclusiv, numar scris in baza 10.

Date de iesire
Pe singura linie a fisierului newcomp.out afisati numarul calculat X, in baza 10. In cazul in care exista mai multe numere X care satisfac cerintele, afisati oricare dintre ele. (! asigurati-va ca linia se termina cu caracterul sfarsit de linie!)

Restrictii

* 0 < N < 2^24
* 0 <= X < 2^24
* lungimea fisierului de transferat nu depaseste 1MB

Exemplu

newcomp.in
13
255 234 133

newcomp.out
12

Explicatii suplimentare

In baza 256, reprezentat pe 3 cifre, numarul 12 este: 000.000.012(256), unde punctul separa cifrele intre ele. Numarul obtinut prin concatenarea lui M cu X este: 255.234.133.000.000.012(256). Impartind acest numar prin 13, obtinem restul 0.

Timp maxim de executie/test: 1 secunda
 
Vezi profilul utilizatorului Trimite mesaj privat
      Back To Top  
Creaza un subiect nou  Raspunde la subiect

 
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


      Back To Top  

Pagina 1 din 1
Mergi direct la:  
Powered by phpBB © 2001, 2002 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro