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 vizitat platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, vă rugăm să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la lista de favorite!