Întrebare
1665 PbInfo
Considerăm şirul a cu n numere naturale nenule distincte două câte două şi un număr x. Scrieţi un program care determină poziţia pe care se va găsi numărul x în şirul a, dacă acesta ar fi ordonat descrescător.
Date de intrare
Programul citește de la tastatură numerele n şi x, urmate de n numere naturale reprezentând elementele şirului a.
Date de ieșire
Programul va afișa pe ecran poziţia determinată mai sus. Dacă numărul x nu se regăseşte în şir, valoarea afişată va fi -1.
Restricții și precizări
1 ≤ n < 200000
cele n numere citite vor fi mai mici decât 10 9
considerăm elementele şirului a numerotate de la 1 la n
Obtin 40pct cu codul:
#include
#define LIM 2001 //daca pun mai mult imi da fatal signal 11
using namespace std;
unsigned int n,x,a[LIM],y;//daca pun mai mult de 2001 eroare fatal signal 11
bool gasit=false;
//caut cate elemente sunt mai mari decat x, acelea vor fi inaintea lui x la o ordonare descrescatoare
//de x se afla pe pozitia y+1
//daca x nu e in sir, atunci -1
int main(){
cin>>n>>x;
for(unsigned int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>x) y++;
else if(a[i]==x) gasit=true;
}
if(gasit==false) cout<<-1;
else cout< return 0;
}
Considerăm şirul a cu n numere naturale nenule distincte două câte două şi un număr x. Scrieţi un program care determină poziţia pe care se va găsi numărul x în şirul a, dacă acesta ar fi ordonat descrescător.
Date de intrare
Programul citește de la tastatură numerele n şi x, urmate de n numere naturale reprezentând elementele şirului a.
Date de ieșire
Programul va afișa pe ecran poziţia determinată mai sus. Dacă numărul x nu se regăseşte în şir, valoarea afişată va fi -1.
Restricții și precizări
1 ≤ n < 200000
cele n numere citite vor fi mai mici decât 10 9
considerăm elementele şirului a numerotate de la 1 la n
Obtin 40pct cu codul:
#include
#define LIM 2001 //daca pun mai mult imi da fatal signal 11
using namespace std;
unsigned int n,x,a[LIM],y;//daca pun mai mult de 2001 eroare fatal signal 11
bool gasit=false;
//caut cate elemente sunt mai mari decat x, acelea vor fi inaintea lui x la o ordonare descrescatoare
//de x se afla pe pozitia y+1
//daca x nu e in sir, atunci -1
int main(){
cin>>n>>x;
for(unsigned int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>x) y++;
else if(a[i]==x) gasit=true;
}
if(gasit==false) cout<<-1;
else cout< return 0;
}
Întrebare a fost pusă de: USER9873
1449 Vezi
500 Răspunsuri
Răspuns (500)
Cam asta ar fi o soluţie la problema asta.
Desigur, se poate aborda în mai multe moduri.
Ai aici o rezolvare clasică făcută de mine şi pe pbinfo e evaluată la 100 de puncte. Succes!
Desigur, se poate aborda în mai multe moduri.
Ai aici o rezolvare clasică făcută de mine şi pe pbinfo e evaluată la 100 de puncte. Succes!