Witam,
Rozwiązuję zadanie żarówki ze strony szkopuł .
Zadanie Żarówki - Treść zadania - SZKOpuł
Żarówki
Limit pamięci: 64 MB
W pokoju znajduje się n żarówek. Początkowo wszystkie żarówki są zgaszone. Z każdą żarówką połączony jest jeden wyłącznik, którego naciśnięcie powoduje zmianę stanu żarówki (zaświecenie zgaszonej lub zgaśnięcie zapalonej). Miecio postanowił pobawić się wyłącznikami i k razy dokonał naciśnięcia któregoś z wyłączników. Ile żarówek jest teraz zapalonych?
Wejście
W pierwszej linii wejścia znajdują się dwie liczby całkowite oddzielone spacją, n i k (, ). W drugiej linii znajduje się k liczb całkowitych () poodzielanych spacjami. Liczby te oznaczają numery wyłączników naciskanych przez Miecia.
Wyjście
Program powinien wypisać jedną liczbę oznaczającą liczbę zapalonych żarówek po zakończeniu zabawy Miecia.
Przykład
Dla danych wejściowych:
3 8 1 1 2 1 3 2 2 1
poprawną odpowiedzią jest:
2
Napisałam program, jednak przekracza limit czasowy.
Czy ktoś mógłby mi powiedzieć, jak zmienić kod, by działał szybciej?
Oto kod:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int k;
cin>>n;
cin>>k;
int zarowki;
int zapalone;
int tab[k];
for(int i=0; i<k;i++)
{
cin>>tab[i];
}
int podstawa=1
for(int g=0;g<k;g++){
for(int t=0; t<k;t++)
{
if(tab[t]==podstawa)
{
zarowki++;
} }
if(zarowki%2!=0)
{
zapalone++;}
zarowki=0;
podstawa++;
}
cout<<zapalone;
return 0;
}
(Jestem początkująca, więc prosiłabym o dokładne wytłumaczenie)