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 1poprawną 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)