Cerința
8 puncteScrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)
Arată baremul
SUBIECTUL al III-lea, 3.b. Pentru program corect: 8p. - operații cu fișiere: declarare, pregătire în vederea citirii, citire din fișier: 1p. - determinare a valorilor cerute (*),(**): 5p. - utilizare a unui algoritm eficient (***): 1p. - declarare a variabilelor, afișare a datelor și tratare a cazului nu exista, corectitudine globală a programului¹): 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar, care utilizează eficient memoria. O soluție posibilă parcurge o dată fișierul, memorând pentru scara curentă și pentru cea căutată lungimea (lgCrt, respectiv lgMax, inițial egale cu 0) și ultimul termen (ultCrt, inițializat cu 0, respectiv ultMax) ale acestora; dacă numărul x citit din fișier la pasul curent face parte din scara curentă (x=ultCrt+1) se actualizează lgCrt, altfel se actualizează datele privind o nouă scară, deci lgCrt=1. La fiecare pas se actualizează ultCrt=x și, după caz, lgMax și ultMax. Se afișează lgMax numere consecutive, primul dintre acestea fiind ultMax-lgMax+1. Mesajul se afișează dacă lgMax<2. ¹) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.