#1225
sort2dist
Jocul pe care îl joaca Robo atunci când se plictisește este un joc inteligent pentru roboței. Pe ecranul tabletei lui roboțești, sunt N
căsuțe de formă pătrată, cu latura egală cu 1
. Căsuțele sunt așezate pe un rând, una lângă alta, fiind etichetate, în această ordine, cu numere de la 1
la N
. Fiecare căsuță conține câte un număr natural, identificatorul câte unuia dintre prietenii săi, roboței, ca și el. Identificatorii se pot repeta.
Robo poate interschimba conținutul a două căsuțe, numai dacă distanța dintre centrele acestora pe orizontală este egală cu distanța dintre brațele sale; distanța, pe orizontală, dintre centrele a două căsuțe etichetate cu
i
, respectiv cu j
, este j-i
(1≤i<j≤N
).
El își poate fixa în orice moment distanța dintre brațe la 1
sau își poate dubla distanța curentă dintre brațe, de oricâte ori este necesar, fără a depăși valoarea N-1
. Astfel, distanța dintre brațele sale poate fi 1
, apoi, prin dublare, 2
, apoi, prin dublare 4
, apoi, prin dublare 8
etc. La începutul jocului, distanța dintre brațele lui Robo este 1
. De fiecare dată când consideră convenabilă distanța dintre brațe, realizează o interschimbare.
Se cere ca Robo să așeze identificatorii în căsuțe în ordine crescătoare, prin maximum 12500
interschimbări de tipul celei precizate mai sus.
ONI GIM 2015, Clasa a VIII-a
Problema | sort2dist | Operații I/O |
![]() sort2dist.in /sort2dist.out
|
---|---|---|---|
Limita timp | 0.4 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
Id soluție | #50655613 | Utilizator | |
Fișier | sort2dist.c | Dimensiune | 2.48 KB |
Data încărcării | 18 Aprilie 2024, 19:10 | Scor / rezultat | 33 puncte |
sort2dist.c: In function 'schimb': sort2dist.c:8:5: warning: array subscript has type 'char' [-Wchar-subscripts] for(j = 0; j < ind[a[i]]; j++) ^ sort2dist.c:10:9: warning: array subscript has type 'char' [-Wchar-subscripts] vmax[j]= v[a[i]][j]; ^ sort2dist.c:13:5: warning: array subscript has type 'char' [-Wchar-subscripts] ind[0]=ind[a[i]]; ^ sort2dist.c: In function 'compar': sort2dist.c:18:5: warning: array subscript has type 'char' [-Wchar-subscripts] if(ind[a[i]] > ind[0]) ^ sort2dist.c:20:5: warning: array subscript has type 'char' [-Wchar-subscripts] else if(ind[a[i]]==ind[0]) ^ sort2dist.c:24:13: warning: array subscript has type 'char' [-Wchar-subscripts] if(v[a[i]][j] > vmax[j]) ^ sort2dist.c:30:13: warning: array subscript has type 'char' [-Wchar-subscripts] else if(v[a[i]][j] < vmax[j]) ^ sort2dist.c:40:13: warning: array subscript has type 'char' [-Wchar-subscripts] if(v[a[i]][j] != vmax[j]) ^ sort2dist.c: In function 'main': sort2dist.c:78:9: warning: array subscript has type 'char' [-Wchar-subscripts] while(v[a[1]][i] != '\n') ^ sort2dist.c:80:13: warning: array subscript has type 'char' [-Wchar-subscripts] vmax[i]=v[a[1]][i]; ^ sort2dist.c:83:9: warning: array subscript has type 'char' [-Wchar-subscripts] ind[0]= ind[a[1]];//pentru maxim ^ sort2dist.c:57:11: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] fscanf(in, "%d", &n); ^ sort2dist.c:58:11: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] fscanf(in, "%c", &x); ^ sort2dist.c:61:14: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result [-Wunused-result] fgets(v[i], 30, in); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | Corect! | 3 | 3 | ||
1 | 0 secunde | Corect! | 3 | 3 | ||
2 | 0 secunde | Corect! | 3 | 3 | ||
3 | 0 secunde | Corect! | 3 | 3 | ||
4 | 0 secunde | Corect! | 3 | 3 | ||
5 | 0 secunde | Corect! | 3 | 3 | ||
6 | 0 secunde | Corect! | 3 | 3 | ||
7 | 0 secunde | Corect! | 4 | 4 | ||
8 | 0 secunde | Corect! | 4 | 4 | ||
9 | 0 secunde | Corect! | 4 | 4 | ||
10 | 0 secunde | Caught fatal signal 11 | 4 | 0 | ||
11 | 0 secunde | Caught fatal signal 11 | 4 | 0 | ||
12 | 0 secunde | Nu s-a sortat sirul! | 4 | 0 | ||
13 | 0 secunde | Caught fatal signal 11 | 4 | 0 | ||
14 | 0 secunde | Nu s-a sortat sirul! | 4 | 0 | ||
15 | 0 secunde | Nu s-a sortat sirul! | 4 | 0 | ||
16 | 0 secunde | Caught fatal signal 11 | 4 | 0 | ||
17 | 0 secunde | Nu s-a sortat sirul! | 4 | 0 | ||
18 | 0.004 secunde | Nu s-a sortat sirul! | 5 | 0 | ||
19 | 0 secunde | Caught fatal signal 11 | 5 | 0 | ||
20 | 0 secunde | Caught fatal signal 11 | 5 | 0 | ||
21 | 0.004 secunde | Nu s-a sortat sirul! | 5 | 0 | ||
22 | 0.004 secunde | Nu s-a sortat sirul! | 5 | 0 | ||
23 | 0 secunde | Caught fatal signal 11 | 5 | 0 | ||
24 | 0 secunde | Caught fatal signal 11 | 5 | 0 | ||
Punctaj total | 33 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema sort2dist face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.