Pagini recente » Diferente pentru problema/gauss intre reviziile 2 si 1 | Diferente pentru problema/simetric intre reviziile 2 si 1 | Diferente pentru problema/submatrix intre reviziile 6 si 7 | Diferente pentru problema/minim2 intre reviziile 4 si 3 | Diferente pentru problema/cbinput intre reviziile 2 si 1
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="cbinput") ==
Georgel are de rezolvat urmatoarea problema: Se da un sir de $N$ numere in ordine crescatoare cu valori intre $1$ si $K$. Fiecare valoare de la $1$ la $K$ apare cel putin o data in sir. Sa se gaseasca ultima aparitie in sir a fiecarei valori de la $1$ la $K$.
Georgel, incepator intr-ale informaticii, a gasit aceasta rezolvare:
==code(cpp) |
...
int cautareBinara(int val) {
int st = 1;
int dr = N;
while(st <= dr) {
int mid = (st + dr) / 2;
if(v[mid] == val) {
while(mid <= N && v[mid] == val) {
mid++; // <==
}
return mid - 1;
} else if(v[mid] < val) {
st = mid + 1;
} else {
dr = mid - 1;
}
}
return -1;
}
...
for (int i = 1; i <= K; i++) {
cout << cautareBinara(i) << endl;
}
...
==
Fiind date $N$ si $K$, sa se gaseasca un sir valid de intrare astfel incat linia 9 (mid++) sa se execute de un numar maxim de ori.
Poveste şi cerinţă...
h2. Date de intrare
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.