Coś słabo czytałeś. Ile zajmie ci wykonanie programu dla tego testu?
10
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
Poza tym twój program daje złe wyniki: https://ideone.com/c7ZvlY5
Ktoś wie czemu spoj mi tego nie zalicza?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n,liczba, y, d, j;
string x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>liczba;
if(liczba<4)
{
if(liczba==0) cout<<0<<" "<<1<<endl;
else cout<<0<<" "<<liczba<<endl;
}
else if(liczba<10)
{
if(liczba==4) cout<<2<<" "<<4<<endl;
else if(liczba==5||liczba==6||liczba==8) cout<<2<<" "<<0<<endl;
else if(liczba==7) cout<<4<<" "<<0<<endl;
else if(liczba==9) cout<<8<<" "<<0<<endl;
}
else
{
cout<<0<<" "<<0<<endl;
}
}
return 0;
}
Hej, a wie ktoś czemu mi wyrzuca timeout?
#include <iostream>
#include <math.h>
using namespace std;
int wynikSilni = 1;
int silnia(int liczba) {
if(liczba == 0 || liczba == 1) return wynikSilni;
return liczba * silnia(liczba-1);
}
int ile;
int main() {
cin >> ile;
int tab[ile];
int rozdzielona[2];
for (int i = 1; i <= ile; i++) {
cin >> tab[i];
string wynik = to_string(silnia(tab[i]));
int jednosci = wynik.length() - 1;
int dziesiatki = wynik.length() - 2;
if(wynik[dziesiatki] == NULL) {
wynik[1] = wynik[jednosci];
wynik[0] = '0';
dziesiatki++;
jednosci++;
}
cout << wynik[dziesiatki] << " " << wynik[jednosci] << endl;
}
}
Masz rację, liczby pierwsze i silnia biją rekordy dodałbym do tego jeszcze “Czy umiesz potęgować”.
Kilka lat temu przeczytałem na jakimś forum, że SPOJ jest beznadziejny, bo odrzucają dobre rozwiązania zadań. Podał przy tym przykład swojego “dobrego” rozwiązania. Zaciekawiło mnie to, wszedłem na SPOJ i tak to się dla mnie zaczęło…
Wg mnie największym problemem w kontekście (także tych) zadań jest profil osób wchodzących na SPOJa. Nie, żebym profilował nowych, ale wg mego wyobrażenia: 1) umiem zrobić Hello World 2) na kółku z infy zrobiłem kółko i krzyżyk, 3) ktoś mi powiedział, że SPOJ jest taki super i takie zadania dla programistów
No i zaczynamy serię rozczarowań, bo na owym kółku uczyli nas liczyć n! jak wyżej, a tu nagle zonk - matematyka. Do tego wystarczy byle kurs / bootcamp / … - i znowu niespodzienka - Adaś chciał zostać progamistą stron www, a tu klepanie kodu dla klienta pokrywa się ze SPOJem jak zagadki matematyczne i zadania szachowe z egzaminem z algebry, jeśli nie słabiej.
I w sumie rozumiem zawód, bo Ci ludzie zostali oszukani. SPOJ nigdy nie oferował zadań na klepanie ERPów, a z współczesnym IT ma mało wspólnego. Tu nie ma zewnętrznych libek, w C++ chyba nawet boosta nie ma, nie robimy animacji, nie ogarniamy systemu, nie klepiemy if(byłEnter) {wyświetlWiedźmina}. Są zadania raczej matematyczne, którymi ludzie rzadko się interesują, a których przydatność w realu też jest niska (kiedy ostatnio klepaliście KMP?).
Sorki, ale używanie mózgu przydaje się i w klepaniu kodu dla klienta i we współczesnym IT. Jak ktoś nie potrafi przeczytać wątku gdzie rozwiązanie podane na tacy, lub nie potrafi zrozumieć/znaleźć co to są liczby pierwsze i jak je się znajduje to raczej nie wróży to dobrze jego karierze programisty…