#703
Salturi
Se dă un șir de numere întregi a[0],a[1],..a[N-1]
. Fiecare valoare a[i]
reprezintă mărimea maximă a unui salt ce poate fi efectuat din pozitia i
. Din poziţia i
, se poate ajunge printr-un salt la oricare din poziţiile i+1, i+2,…, i+a[i]
, dacă a[i]
este pozitiv, iar dacă a[i]
este negativ se poate ajunge la oricare din poziţiile i-1,i-2,…, i+a[i]
.
Trebuie să se ajungă, prin salturi, de la poziția 0
la o poziție mai mare decât N-1
(în afara vectorului, la dreapta).
Scrieți un program care să determine numărul minim de salturi necesare pentru a ajunge de la poziția 0
la o poziție mai mare decât N-1
.
Lot Juniori, Baia Mare, 2013
Problema | Salturi | Operații I/O |
![]() salturi.in /salturi.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 16 MB
/
Stivă 16 MB
|
Id soluție | #58124856 | Utilizator | |
Fișier | salturi.cpp | Dimensiune | 683 B |
Data încărcării | 15 Mai 2025, 11:07 | Scor / rezultat | Eroare de compilare |
salturi.cpp:1:1: error: expected unqualified-id before string constant "#include<stdio.h>\nusing namespace std;\nint n, a[1000010], b[1000010];\nint i, j, p, ok;\n\nint main()\n{\n freopen(\"salturi.in\",\"rt\",stdin);\n freopen(\"salturi.out\",\"wt\",stdout);\n scanf(\"%d\",&n);\n for (i=1;i<=n;i++)\n {\n scanf(\"%d\",&a[i]);\n if (i + a[i] > n) a[i] = n + 1 - i;\n }\n\n b[0]=0;\n p=0;\n a[0]=1;\n ok=1;\n for (i=0;i<=n && p<=n;i++)\n {\n if (p<i){ok=-1;break;}\n for (j=p+1;j<=i+a[i];j++)\n {\n b[j]=b[i]+1;\n p++;\n }\n }\n if (ok==-1)b[n+1]=0;\n printf(\"%d\",b[n+1]-1);\n fclose(stdout);\n return 0;\n}" ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Salturi 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ă.