Informatică, întrebare adresată de TrinityZ, 8 ani în urmă

Doar in c++
Andrei şi Mihai doresc să aplice pentru acelaşi post în echipa WellCode. Deoarece echipa WellCode este compusă din programatori de elită, doar cei mai buni pot ajunge să faca parte din aceasta.

Pentru a-l recruta pe cel mai bun, Petru şi Bianca le-au cerut celor 2 candidați să scrie un program care, pentru un şir de n numere naturale sortat crescător și o valoare x dată, să determine poziţia minimă p pe care se găsește valoarea x în şir.

Va intra în echipa Wellcode cel al cărui program va executa sarcina cel mai rapid. Testează-ți și tu abilitățile și rezolvă problema aici, pe platformă

Date de intrare
Programul citește de la tastatură, de pe prima linie, numărul natural n. De pe următoarea linie se citește șirul de n numere naturale, sortate crescător. De pe a treia linie se citește un număr natural m, iar de pe a patra se citesc m numere naturale, reprezentând valori posibile pentru x.

Date de ieșire
Afișează, pentru fiecare dintre cele m numere citite, poziția minimă pe care se găsește în șirul inițial. Valorile vor fi afișate separate prin spații, iar numerotarea pozițiilor se va face începând cu valoarea 1.

Restricții și precizări
1 ≤ n ≤ 500 000
numerele din şir vor avea valori în intervalul [0, 500]
1 ≤ m ≤ 100 000
1 ≤ x ≤ 500
se garantează că valorile lui x citite există întotdeauna în şirul dat
Exemple
Date de intrare Date de ieșire
10
1 2 3 4 4 4 5 6 6 7
4
2 4 5 6 2 4 7 8

Răspunsuri la întrebare

Răspuns de c10crys
1

Răspuns:#include <iostream>

using namespace std;

int n, m, n_elements[10001], searching_m[101];

int main() {

   cin >> n;

   for (int i = 1; i <= n; ++i) {

       cin >> n_elements[i];

   }

   cin >> m;

   for (int i = 1; i <= m; ++i) {

       cin >> searching_m[i];

   }

   for (int i = 1; i <= m; i++) {

       for (int j = n; j >= 1; j--) {

        if (searching_m[i] == n_elements[j]) {

           cout << j << " ";

           break;

           }

       }

   }

   return 0;

}

Explicație:

salut...si eu sunt la aceasta problema si am reusit sa fac acest cod sa imi afiseze 2 6 7 9 in loc de 2 4 7 8 deoarece imi afiseaza nr 4 de pe poz 6 si nr 6 de pe poz 9 si trebuie sa ne afiseze nr 4 de pe poz 4 si nr 6 de pe poz 8.

Daca reusesti sa gasesti bagul din codul meu...astept raspunsul tau.

Alte întrebări interesante