Muszę stworzyć program który losuje z listy wpisanych uczestników kilku wygranych.
Najpierw podaję liczbę uczestników (n) potem liczbę wygranych (m) następnie wpisuję uczestników oraz m liczb które oznaczają o ile miejsc ma się przesuwać wskaźnik losujący (przesuwa się od pierwszej osoby najpierw wprawo potem w lewo i tak na zmianę aż wylosuje m wygranych) osoba która zostanie wylosowana ma być usunięta z listy osób ponieważ nie może być wylosowana drugi raz, napisałem program oparty na wektorach i gdy wrzucam go na sprawdzarkę (na stronie z której mam to zadanie) to we wszystkich 5 testach jakie wykonuje dostaje komunikat naruszenie ochrony pamięci, z tego co czytałem może być to spowodowane tym że w którymś momencie mój program próbuje odczytać albo zapisać coś do pamięci która może przechowywać jakieś pliki które są poza zakresem mojego programu ale nie mogę nic znaleźć.
ktoś jest w stanie znaleźć problem tych komunikatów?
sory ale nie mogłem dodać kodu w załączniku nie wiem czemu
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int numer=0;
int n;
int m;
//zmienne do wektorów//
int z;
string x;
int main()
{
cin >> n >> m;
vector <int> wygrani;
vector <string> osoby;
for(int i = 0; i < n; i++)
{
cin >> x;
osoby.push_back( x );
}
for(int i=0; i<m; i++)
{
cin >> z;
wygrani.push_back( z );
}
z=n;
for(int i = 0; z >= 1 && z <= 250000 && m < z && m >= 1 && i < m;i++)
{
if(i >= m)
{
break;
}
numer = numer + wygrani[i];
while(numer >= n)
{
numer = numer - n;
}
cout << osoby[numer] << endl;
osoby.erase(osoby.begin() + numer);
n--;
i++;
if(i >= m)
{
break;
}
numer = numer - wygrani[i];
while(numer < 0)
{
numer = numer + n;
}
cout<< osoby[numer] << endl;
osoby.erase(osoby.begin() + numer);
numer--;
n--;
}
return 0;
}