• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie puzzle z mistrza programowania 2023

0 głosów
270 wizyt
pytanie zadane 25 lipca 2024 w C i C++ przez Sophix Początkujący (270 p.)

Hej, napisałam kod, który działa mi w kompilatorze, ale jak wrzucam na szkopuła to wyświetla signal 11. Na razie tablica jest ustawiona na 1e6, bo na 1e7 jest przekroczenie czasu, więc jeżeli ktoś wie jak można skrócić czas działania programu, to będę wdzięczna za pomoc. Poniżej wrzucam też link do treści zadania ze szkopuła.

https://szkopul.edu.pl/problemset/problem/rZa6uMvtCyNIUH1_U0GNM8SU/site/?key=statement

#include <bits/stdc++.h>
using namespace std;
const int MAX=1e6;
int dzielniki[MAX+2];

void Sito(){
    int zakres=sqrt(MAX);
    for (int i=1; i<=zakres;i++){
        for(int j=i*i; j<=MAX; j++){
            dzielniki[j]=i;
        }
    }
    
}

int main(){
    ios_base::sync_with_stdio(0);   cin.tie(0); cout.tie(0);
    Sito();
	int t, n, ans;
    cin >> t;
    while(t--){
        cin >> n;
        ans=(dzielniki[n]+2)*2+(n/dzielniki[n]+2)*2-4;
        cout << ans << endl;
    }

    return 0;
}

1 odpowiedź

+2 głosów
odpowiedź 25 lipca 2024 przez Whistleroosh Maniak (57,400 p.)
wybrane 25 lipca 2024 przez Sophix
 
Najlepsza
Sito ma literówkę, która powoduje, że działa dużo wolniej :) Po poprawce i ustawieniu MAX na 1e7 będzie mieściło się w czasie. Zachęcam do poszukania tej literówki.
komentarz 25 lipca 2024 przez Sophix Początkujący (270 p.)
Chyba znalazłam, aż ciężko uwierzyć, że człowiek próbuje przez godziny znaleźć jakieś optymalne rozwiązanie gdy jest ono na wyciągnięcie ręki. Czy to j+=i? Dzięki wielkie
komentarz 26 lipca 2024 przez Whistleroosh Maniak (57,400 p.)
Tak, to dokładnie to :)

Podobne pytania

0 głosów
0 odpowiedzi 231 wizyt
+4 głosów
2 odpowiedzi 7,842 wizyt
pytanie zadane 14 maja 2015 w Rozwój zawodowy, nauka, praca przez Pinio Gaduła (3,520 p.)
+1 głos
2 odpowiedzi 683 wizyt
pytanie zadane 9 czerwca 2022 w JavaScript przez Maciek273 Początkujący (450 p.)

93,695 zapytań

142,612 odpowiedzi

323,223 komentarzy

63,224 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...