Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int v[100001]; // nu precizeaza cat de mare este vectorul, deci am ales eu o valoare
int main()
{
unsigned int n;
cin >> n;
int x, k;
for (int i = 1; i <= n; ++i)
cin >> v[i];
cin >> x >> k;
int st, dr; // cea mai din stanga, respectiv dreapta pozitie a lui x
st = dr = 0; // initializam 0, "Dacă x nu apare în vector, atunci p și q vor fi egale cu 0"
for (int i = 1; i <= n / 2; ++i)
{
if (v[i] == x)
{
st = i;
break;
}
}
for (int i = n; i >= n / 2; --i)
{
if (v[i] == x)
{
dr = i;
break;
}
}
int cnt = 0, poz = 0; // contor pentru a afla la a cata aparietie a lui x suntem, respectiv a k - a pozitie a lui x
for (int i = 1; i <= n; ++i)
{
if (v[i] == x)
cnt++; // am gasit o aparitie
if (cnt == k)
{
poz = i; // pozitia devine pozitia curenta
break; // am gasit ce trebuia, ne oprim
}
}
cout << st << '\n' << dr << '\n' << poz;
return 0;
}
Explicație:
Ai explicatia in cod, probabil nu este cel mai eficient, dar este cel mai usor de inteles dupa parerea mea. Succes !!!
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile oferite v-au fost de folos. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Revenirea dumneavoastră ne onorează – adăugați-ne la favorite pentru a fi mereu la curent!