Informatică, întrebare adresată de rascanudianaoxd1uy, 8 ani în urmă

Se dă un număr natural X şi un şir cu n numere naturale distincte două câte două. Să se determine poziţia pe care s-ar afla numărul X în şirul ordonat crescător.

Date de intrare
Fişierul de intrare pozitiex.in conţine pe prima linie numerele X şi n. Urmează n numere naturale, dispuse pe mai multe linii, separate prin spaţii.

Date de ieşire
Fişierul de ieşire pozitiex.out va conţine pe prima linie numărul p, reprezentând poziţia în şirul ordonat crescător a primului element din şirul dat. Dacă numărul X nu apare în şir, se va afişa mesajul NU EXISTA.

solutia asta da doar 80 si nu stiu ce nu iau in calcul
#include

using namespace std;
ifstream fin ("pozitiex.in");
ofstream fout ("pozitiex.out");
int main()
{
int v[10001],n,i,x,k;
fin>>x>>n;
k=n;
for(i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+n+1);
for(i=1;i<=n;i++,k--)
if(v[i]==x) break;
if(k!=0) fout< else cout<<"NU EXISTA";
return 0;
}

Răspunsuri la întrebare

Răspuns de Nemo19
1
Se face cu cautarea binara deoarece e ordonat crescator sirul deja. E mai optim.
Răspuns de NuPotSaStiuTot
2
if(k!=0) fout< 
este incomplet
Alte întrebări interesante