Diferente pentru problema/cbinput intre reviziile #1 si #2

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="cbinput") ==
Poveste şi cerinţă...
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.
h2. Date de intrare

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.