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;
}
Razzvy:
Singura problema e ca tu folosesti un vector de 2000 de elemente pentru a citi elementele, dar tu ai avea nevoie de unul de 200000. Dar, odata ce le citesti si faci verificarile, nu mai ai nevoie de ele, asadar nu ai nevoie de vector; poti folosi o variabila in care sa citesti elementele. Asa scapi si de problema ca iesi din memorie(cu Fatal signal 11)
Răspunsuri la întrebare
Răspuns de
3
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!
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă