Detalii evaluare #50542228

Rezumat problemă

Regele Rufus dorește să stabilească moștenitorul averii sale, adică să ofere parola de la seif celui mai deștept dintre fiii săi. Inițial, regele a avut parola X formată din N cifre nenule și un cod cheie Q (număr natural cu exact nouă cifre, distincte, toate nenule). În fiecare an din cei K ani de domnie, folosind codul cheie Q, Rufus a modificat câte o secvență de cifre din parolă ajungând la parola finală P.Pentru fiecare secvență se cunoaște poziția S a primei cifre din secvență și poziția D a ultimei cifre din secvență. Astfel, secvența este formată din cifrele situate pe pozițiile S, S+1, S+2,…, D în parola X.

Modificarea unei secvențe din X constă în înlocuirea fiecărei apariții a cifrei 1 cu prima cifră a lui Q, apoi a fiecărei apariții a cifrei 2 cu a doua cifră a lui Q,…, a fiecărei apariții a cifrei 9 cu ultima cifră a lui Q.

Pentru a decide moștenitorul, regele le dă fiilor parola finală P, codul cheie Q, numărul K de ani de domnie și cele K secvențe de cifre care au fost modificate și le cere să găsească: parola inițială X, poziția minimă Z din parola X care a apărut în cele mai multe secvențe dintre cele modificate de rege de-a lungul celor K ani de domnie și cifrele distincte care au ocupat poziția Z în cei K ani.

Scrieți un program care citește numerele Q, N, K, cele N cifre ale parolei finale P și cele K perechi de poziții S și D, și care rezolvă următoarele două cerințe:

  1. determină parola inițială X;
  2. determină poziția minimă Z și cifrele distincte care au ocupat această poziție în cei K ani de domnie.

Detalii

Problema mostenire Operații I/O mostenire.in/mostenire.out
Limita timp 0.3 secunde Limita memorie Total: 8 MB / Stivă 8 MB
Id soluție #50542228 Utilizator sevescu andrei (sevescu_andrei)
Fișier mostenire.c Dimensiune 1.54 KB
Data încărcării 14 Aprilie 2024, 13:16 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

mostenire.c: In function 'main':
mostenire.c:11:11: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
     fscanf(fin, "%d%d%d%d" ,&c,&q,&n,&k);

           ^
mostenire.c:17:19: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
             fscanf(fin, "%d" ,&x[i]);

                   ^
mostenire.c:21:19: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
             fscanf(fin, "%d%d" ,&s[j],&d[j]);

                   ^
mostenire.c:40:19: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
             fscanf(fin, "%d" ,&x[i]);

                   ^
mostenire.c:51:19: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
             fscanf(fin, "%d%d" ,&t,&f);

                   ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde OK. 5 5
2 0 secunde OK. 5 5
3 0 secunde OK. 5 5
4 0 secunde OK. 5 5
5 0 secunde OK. 5 5
6 0 secunde OK. 5 5
7 0 secunde OK. 5 5
8 0 secunde OK. 5 5
9 0 secunde OK. 5 5
10 0 secunde OK. 5 5
11 0 secunde OK. 5 5
12 0 secunde OK. 5 5
13 0 secunde OK. 5 5
14 0 secunde OK. 5 5
15 0 secunde OK. 5 5
16 0 secunde OK. 5 5
17 0 secunde OK. 5 5
18 0 secunde OK. 5 5
19 0 secunde OK. 5 5
20 0 secunde OK. 5 5
Punctaj total 100

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema mostenire face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.