- Twoja funkcja power jest niewydajna - co daje pow(2, 27), gdy n = 1000000 ?
- Użycie funkcji pow(2, x) w zadaniu tego typu jest błędem.
- Gdy …jedna liczba określająca liczbę zapytań (nie więcej niż milion). oraz n dużo mniejsze [niż milion] warto pomyśleć o stablicowaniu wyników.
- Testy w zadaniach są tylko do “obrazowego” wytłumaczenia treści, a do testowania to tylko minimum z minimum
- Dopiero na koniec, gdy jest duża ilość wczytywanych danych, można pomyśleć o optymalizacji i/o
-
Wprowadzenie do algorytmów jest jak najbardziej godne polecenia.
AD 1
szybkie potęgowanie <-- np google, może wystarczy
AD 2
pow(2, 10) ===> 1 << 10
//przesunięcie bitowe, ale to w twoim kodzie nie wystarczy
pow(2, x) ===> 1 << x
AD 3
Ja tak mam, ale oczywiście inaczej obliczam wartości elementów tablicy.
AD 4
Dlatego, natychmiast proponuję wykonaj minimum taki test, oraz inny większy:
10
1
2
3
4
5
6
7
8
9
10
AD 5
Na pewno Ci to nie przyśpieszy aktualnego kodu do AC, ale zobacz [poczytaj] np: https://4programmers.net/C/Wymuszanie_wysokiej_wydajności_iostream