fbpx

Problema #3215 – kth – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Scrieți funcția Kth care primește ca parametri:

  • a – un vector de numere întregi
  • n – un număr natural reprezentând numărul elementelor vectorului
  • x – un număr întreg
  • k – un număr natural

Funcția va returna poziția din vector unde x apare pentru a k-a oară, sau -1 dacă x nu apare de cel puțin k ori

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele vectorului sunt indexate de la 0 la n-1.
  • -1000 ≤ a[i] ≤ 1000, pentru orice i=0..n-1
  • -1000 ≤ x ≤ 1000
  • 0 ≤ k ≤ 1000

Exemple:

Dacă a = (4,2,5,2,6,2), atunci Kth(a, 6, 2, 2) va returna valoarea 3.

Cerința

Scrieți funcția Kth care primește ca parametri:

  • a – un vector de numere întregi
  • n – un număr natural reprezentând numărul elementelor vectorului
  • x – un număr întreg
  • k – un număr natural

Funcția va returna poziția din vector unde x apare pentru a k-a oară, sau -1 dacă x nu apare de cel puțin k ori

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele vectorului sunt indexate de la 0 la n-1.
  • -1000 ≤ a[i] ≤ 1000, pentru orice i=0..n-1
  • -1000 ≤ x ≤ 1000
  • 0 ≤ k ≤ 1000

Exemple:

Dacă a = (4,2,5,2,6,2), atunci Kth(a, 6, 2, 2) va returna valoarea 3.
Dacă a = (4,2,5,2,6,2), atunci Kth(a, 6, 5, 3) va returna valoarea -1.
Dacă a = (4,2,5,2,6,2), atunci Kth(a, 6, 5, 0) va returna valoarea -1.

Important

Soluția propusă va conține definiția funcției cerute. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

int Kth(int a[], int n, int x, int k){
    if(k == 0)
        return -1;
    int cnt = 0;
    for(int i = 0; i < n; ++i)
        if(a[i] == x)
            cnt++;
    if(cnt >= k){
        int poz = 0;
        for(int i = 0; i < n; ++i)
            if(a[i] == x){
                k--;
                if(k == 0)
                    poz = i;
            }
        return poz;
    }
    return -1;
}
Comentarii

S-ar putea sa iti placa