Răspuns :
Răspuns:
Problema din codul tău este că ai început indexarea de la 1 în loc de la 0 când ai parcurs șirul pentru a număra aparițiile fiecărui element. Modifică aceste bucle for astfel încât să înceapă de la 0. În plus, trebuie să ai grijă la dimensiunea array-ului `ap`, trebuie să fie cel puțin 501 pentru a putea acoperi toate valorile posibile (de la 0 la 500). Mai jos este codul modificat:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, v[10000];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> v[i];
}
int ap[501]; // Dimensiunea modificata
for (int i = 0; i < 501; i++) { // Modificare aici
ap[i] = 0;
}
for(int i = 0; i < n; i++) { // Modificare aici
ap[v[i]]++;
}
int valMax = 0;
for(int i = 0; i <= 500; i++) {
if(ap[valMax] < ap[i] && ap[i] <= n) {
valMax = i;
} else if (ap[valMax] == ap[i] && ap[i] <= n) {
valMax = i;
}
}
cout << valMax << endl;
return 0;
}
```
Aceste modificări ar trebui să corecteze problema și să permită programului să ruleze corect.