Przekroczenie czasu w zadaniu NWD
Ostatnio zmodyfikowano 2015-08-02 22:31
Asahel Temat założony przez niniejszego użytkownika |
Przekroczenie czasu w zadaniu NWD » 2015-08-02 19:18:21 Witam, spoj nie akceptuje mojego rozwiązania pomimo, że wychodzą mi dobre wyniki. Wyświetla się w serwisie komunikat o przekroczeniu limitu czasu. Proszę o pomoc. Treść zadania znajduje się pod tym adresem http://pl.spoj.com/problems/PP0501A/. #include <iostream>
using namespace std;
int nwd( int a, int b ) { int r, i, n; if( a <= b ) n = a; else n = b; for( i = 1; i <= n; i++ ) { if( a % i == 0 && b % i == 0 ) r = i; } return r; }
int main() { int t, k; cin >> t; for( k = 1; k <= t; k++ ) { int a, b; cin >> a >> b; cout << nwd( a, b ) << endl; }
|
|
michal11 |
» 2015-08-02 19:54:04 Jeszcze dobrze by było jak byś wkleił treść zadania. |
|
Asahel Temat założony przez niniejszego użytkownika |
» 2015-08-02 19:58:30 |
|
pekfos |
» 2015-08-02 20:53:32 Obliczaj NWD z algorytmu Euklidesa. Twoje rozwiązanie jest pewnie za wolne. Jeśli i to nie pomoże, przerzuć się na i/o z C (Co w sumie nie powinno być potrzebne, bo użyłeś najgorszego sensownego podejścia do problemu NWD). |
|
Rashmistrz |
» 2015-08-02 20:58:21 Twoje rozwiązanie nie jest dobrym rozwiązaniem. Przeszukujesz możliwy zbiór od 0 do max(a, b), czyli na siłę próbujesz znaleźć wynik, a to nie tak ma być... _________________________________________________
Ahhhhhh, dzięki Pekfos... |
|
Asahel Temat założony przez niniejszego użytkownika |
» 2015-08-02 22:31:18 Skorzystałem z algorytmu Euklidesa i działa. |
|
« 1 » |