Ĺadny brzuch
Rozwiązuje zadanie z https://pl.spoj.pl/problems/KC004/ .
Wszysko jest ok, poza tym że... spoj uznaje moje rozwiązanie za błędne. Czas jest ok, wyniki też. Co jest w takim razie nie tak? Korzystając z okazji: jeśli w zadaniu jest mowa o liczbie całkowitej, to jest to long long?
#include <cstdio> using namespace std; unsigned long long szukajwciagu() { unsigned long long znakow,i, powtorzen; long long liczba, obecna; powtorzen=0; scanf("%lld %lld", &liczba, &znakow); for(i=0; i<znakow; ++i) { scanf("%lld", &obecna); if(obecna==liczba) ++powtorzen; } return powtorzen; } int main() { unsigned ile; scanf("%u", &ile); while(ile>0) { printf("%llu\n", szukajwciagu()); --ile; } return 0; }
Z góry dzięki za odpowiedź!
Użytkownik Grzese edytował ten post 26 grudzień 2007, 10:34
przeczytaj jeszcze raz tresc i zastanow sie nad wczytywaniem wejscia
co do "liczby calkowitej" - jesli nie ma podanych zakresow (a w cywilizowanych zadaniach są podane - spoj ssie), to zwykle należy przyjąć int
Użytkownik bryn edytował ten post 25 grudzień 2007, 22:07
Nad wszystkim się już zastanawiałem, co przyszło mi do głowy. Gdybym wymyślił coś, nie zakładałbym tematu.
to sie zastanow nad tym skad wiesz ile bedzie poadnych zestawow wejsciowych.. :>
Zmieniłem na:
#include <cstdio> using namespace std; long long szukajwciagu() { long long znakow,i, powtorzen; long long liczba; long long akt; powtorzen=0; if( scanf("%lld%lld", &liczba, &znakow) != 2) return -1; for(i=0; i<znakow; ++i) { scanf("%lld", &akt); if(akt==liczba) ++powtorzen; } return powtorzen; } int main() { while(1) { long long [ciach!] = szukajwciagu(); if( [ciach!] == -1) return 0; printf("%lld\n", [ciach!]); } return 0; }
i działa. Dzięki za radę. Taki głupi bład.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Wszysko jest ok, poza tym że... spoj uznaje moje rozwiązanie za błędne. Czas jest ok, wyniki też. Co jest w takim razie nie tak? Korzystając z okazji: jeśli w zadaniu jest mowa o liczbie całkowitej, to jest to long long?
#include <cstdio> using namespace std; unsigned long long szukajwciagu() { unsigned long long znakow,i, powtorzen; long long liczba, obecna; powtorzen=0; scanf("%lld %lld", &liczba, &znakow); for(i=0; i<znakow; ++i) { scanf("%lld", &obecna); if(obecna==liczba) ++powtorzen; } return powtorzen; } int main() { unsigned ile; scanf("%u", &ile); while(ile>0) { printf("%llu\n", szukajwciagu()); --ile; } return 0; }
Z góry dzięki za odpowiedź!
Użytkownik Grzese edytował ten post 26 grudzień 2007, 10:34
przeczytaj jeszcze raz tresc i zastanow sie nad wczytywaniem wejscia
co do "liczby calkowitej" - jesli nie ma podanych zakresow (a w cywilizowanych zadaniach są podane - spoj ssie), to zwykle należy przyjąć int
Użytkownik bryn edytował ten post 25 grudzień 2007, 22:07
Nad wszystkim się już zastanawiałem, co przyszło mi do głowy. Gdybym wymyślił coś, nie zakładałbym tematu.
to sie zastanow nad tym skad wiesz ile bedzie poadnych zestawow wejsciowych.. :>
Zmieniłem na:
#include <cstdio> using namespace std; long long szukajwciagu() { long long znakow,i, powtorzen; long long liczba; long long akt; powtorzen=0; if( scanf("%lld%lld", &liczba, &znakow) != 2) return -1; for(i=0; i<znakow; ++i) { scanf("%lld", &akt); if(akt==liczba) ++powtorzen; } return powtorzen; } int main() { while(1) { long long [ciach!] = szukajwciagu(); if( [ciach!] == -1) return 0; printf("%lld\n", [ciach!]); } return 0; }
i działa. Dzięki za radę. Taki głupi bład.