Zadanie ze SPOJ
Ostatnio zmodyfikowano 2018-05-09 21:32
Pawełek Temat założony przez niniejszego użytkownika |
» 2018-05-09 21:01:03 Z dysku, dołączyłem do zadania w spoju, a o jaki plik ci chodziło? |
|
pekfos |
» 2018-05-09 21:05:18 To ja pytam o co chodzi z tym plikiem. Masz na myśli to co jest napisane w FAQu..? Jak przeczytasz uważnie, tam nie ma nic o używaniu pliku w programie. |
|
Pawełek Temat założony przez niniejszego użytkownika |
» 2018-05-09 21:23:35 A to zdanie? Uruchamiamy program z przekierowaniem pliku na standardowe wejście |
albo to: Na SPOJu i innych automatycznych sprawdzarkach dane są zwykle wczytywane z pliku, więc mamy sobie plik dane.txt: |
funkcja bez pliku i bez wektora tez jest zla ( zrobiona na przykładzie z twojego właśnie pytania z FAQ'U) #include <iostream> using namespace std;
void sprawdzanie( unsigned int & d, unsigned int & e ) { for( unsigned int liczba = d; liczba <= e; liczba++ ) { for( unsigned int i = 2; i <= liczba; i++ ) { if( liczba % i == 0 && i < liczba ) break; if( i == liczba ) cout << liczba << endl; } } }
int main() { unsigned int a, b, c; cin >> a; while( a-- ) { cin >> b >> c; sprawdzanie( b, c ); cout << endl; } return 0; }
|
|
pekfos |
» 2018-05-09 21:32:42 A to zdanie?
Uruchamiamy program z przekierowaniem pliku na standardowe wejście |
|
To nie jest użycie pliku w programie. Kod programu jest dalej ten sam, a więc nie używający plików. funkcja bez pliku i bez wektora tez jest zla ( zrobiona na przykładzie z twojego właśnie pytania z FAQ'U) |
No i w końcu nie wygląda rażąco źle. Można jeszcze przyspieszyć wczytywanie danych, ale problem raczej leży w twoim naiwnym algorytmie. Powinieneś korzystać z założenia w zadaniu, że n - m <= 100000 i użyć sita Eratostenesa. |
|
1 « 2 » |