De ce imi da "Caught fatal signal 11", pe pbinfo la problema asta:
Cerința
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
Exemple:
Intrare
9 13
26 2 5 30 13 45 62 7 79
Ieșire
6
Dacă sortăm şirul a descrescător obţinem şirul (79,62,45,30,26,13,7,5,2). Valoarea 13 se află pe poziţia 6.
Programul meu:
#include
using namespace std;
int a[200001],n,x;
int main()
{
cin >> n >> x;
for(int i=1;i<=n;i++)
cin >> a[i];
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]<a[j])
swap(a[i],a[j]);
for(int i=1;i<=n;i++)
if(a[i]==x)
{
cout << i;
return 0;
}
cout << "-1";
return 0;
}
Asa inteleg ca eroarea asta, se da cind se iese din afara vectorului, insa nu vad in ce moment se face acest lucru, caci testind in codeblocks programul imi da raspunsul correct.
P.s. Am incercat sa fac prin comande din , tot nu merge.
P.s.s. Spunetimi doar greseala! Nu trebuie sa-mi faceti un program aparte!!!
Răspunsuri la întrebare
Răspuns de
11
Vectorul a[200001] iti ocupa prea mult spatiu! Incearca sa cauti o solutie mai eficienta din punctul de vedere al memoriei.
Spre exemplu:
#include <iostream>
using namespace std;
int n,a,k,nr;
bool ok;
int main()
{ cin>>n>>k;
for(int i=1;i<=n;i++)
{ cin>>a;
if(a>k)
nr++;
if(a==k)
ok=1;
}
if(ok)
cout<<nr+1;
else
cout<<"-1";
return 0;
}
Spre exemplu:
#include <iostream>
using namespace std;
int n,a,k,nr;
bool ok;
int main()
{ cin>>n>>k;
for(int i=1;i<=n;i++)
{ cin>>a;
if(a>k)
nr++;
if(a==k)
ok=1;
}
if(ok)
cout<<nr+1;
else
cout<<"-1";
return 0;
}
stassahul:
Mersi!
Alte întrebări interesante
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Chimie,
9 ani în urmă
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Studii sociale,
9 ani în urmă