1 / 34
Oct 2016

Cześć :wink:

Czy ktoś mógłby rzucić okiem na jakim teście wysypuje się mój program? Według mnie wszystko wydaje się być w porządku, a jednak według SPOJ-a błędna odpowiedź :confused:

Kod: ####

Z góry bardzo dziękuję za jakikolwiek feedback

Edit: Błąd już znalazłem.... w jednym miejscu nie wyzerowałem iteratora pętli -.-

  • created

    Oct '16
  • last reply

    Nov '20
  • 33

    replies

  • 3.0k

    views

  • 14

    users

  • 3

    likes

  • 8

    links

rozumiem, że masz AC
mimo to sprawdź swój program dla danych:

1
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2

Heh a to ci dopiero :open_mouth: Faktycznie, zaakceptował mi SPOJ, a ten Twój test zrobił na tak, i w sumie się nie dziwię - suma w kwadratach, kolumnach, wierszach 45 i w dodatku każda cyfra pojawia się 9 razy.

Jakaś sugestia, jak już wzbudziłeś moją ciekawość, jaki warunek mógłbym dołożyć żeby wychwycić ten przypadek? :slight_smile:

Edit: Oczywiste... należy zamienić moje warunki na "45" na zliczające pojawienie się cyfry -.- Dziękuje, zawsze to feedback, który dał sporo do myślenia :slight_smile:

bo tak naprawdę, to należy sprawdzać pojedyncze wystąpienie każdej z cyfr 1-9 w każdej z kolumn, wierszy i tych podkwadratów.

jak widać testy do zadań nie zostały wystarczająco złośliwie przygotowane :slight_smile:

ja spojrzałem pobieżnie na twój program, od razu zauważyłem, że badanie warunków nie jest wystarczające, ale z powodu braku czasu zanim zająłem się tym dokładniej, to napisałeś, że problem rozwiązany.

8 months later

Witam!

Poczytałem troche odnośnie podpowiedzi jak rozwiązać to zadanie i zastosowałem to w swoim kodzie (przynajmniej tak mi sie wydaje) ,niestety sedzia nie akceptuje . Brak mi juz pomysłów na testy by dojsc do rozwiązania. O to kod http://ideone.com/imS3yX126 . Prosze o jakiej podpowiedzi.

to chyba niedokładnie czytałeś podpowiedzi, lub nie wszystkie, lub ich nie zrozumiałeś
a jednocześnie tak zagmatwanego programu na rozwiązanie tego (prostego przecież) zadania to jeszcze nie widziałem - duże osiągnięcie z twojej strony :slight_smile:

sprawdź wynik twojego programu dla danych:

1
2 5 0 7 6 10 3 4 8
10 8 6 3 4 5 2 7 0
3 7 4 8 2 0 6 10 5
4 2 10 6 3 8 5 0 7
8 6 3 5 0 7 10 2 4
5 0 7 4 10 2 8 3 6
7 10 5 0 8 3 4 6 2
0 4 2 10 5 6 7 8 3
6 3 8 2 7 4 0 5 10

Dzieki dzieki za pomoc jest AC, zmieniłem podejscie, za bardzo komplikowalem a to zadanie z serii Latwe.

skoro masz AC, to wysyłam ci (na priv oczywiście) link do mojego rozwiązania - popatrz o ile prościej można to zrobić

16 days later

Głowię się już parę godzin, czemu nie dostaję AC, może ktoś mógłby mi pomóc?
Tu był kod....

for (,,,,,,,,,,,)
for (...........){
...........
............
...........
break;
}

break --> przerywa tylko wewnętrzną pętlę.

PS
Teraz lub po AC powinieneś przemyśleć i uprościć [znacząco] swój kod.

20 days later

Nie mogę znaleźć błędu. poproszę o wskazówki
Zakładam że w wierszu muszą być różne liczby np 1,2,3,4,5,6,7,8,9 lub 10,11,12,13,14,15,16,17,18 i nie mogą się powtarzać liczby w kolumnach i w wierszach.
link http://ideone.com/bwiXKf71

Dzięki za podpowiedz. (zapomniałem że małe kwadraty też powinny być sprawdzane :frowning: . )

1 month later

Ktoś może pomoc? Dostaje WA, a wciaż błędu nie mogę znaleźć.
AC

a jakim cudem miałbyś dostać AC ? - skoro nie daje poprawnych odpowiedzi dla przykładowych danych podanych w zadaniu

1 year later

wygląda na to, że nie wiesz co to jest sudoku, bo niektóre odpowiedzi twojego programu na twoje przykłady są błędne

10 months later

Czołem,

Czy ktoś mógłby dać wskazówkę, dlaczego mój program nie przechodzi przez spoja.
Program sprawdza:
-występowanie liczb w kwadratach 3 x 3,

  • występowanie liczb w każdym rzędzie, kolumnie,
  • zlicza sumę liczb w każdym rzędzie.
  • sprawdza czy liczby są spoza zakresu 1-9.

Na przykładach z zadania działa i na powyższych tutaj wymienionych.
Nie wiem czy jest to kwestia jakiegoś głupiego błędu czy coś poważniejszego…
Link do programu:

Twój kod jest tak długi, a noc tak krótka, że nie podejmuję się jego analizy, ale kilka uwag:

Więc powinieneś to pokazać właśnie na ideone, wklejając do okienka stdin [wejście] wszystkie testowane przykłady.

Sprawdzanie sumy moim zdaniem nie jest dobre, np 9 x 5 = 45, a także dowolnie wiele różnych kombinacji 9 liczb jednocyfrowych spełnia ten warunek [== 45]

Używasz C++, to nie używaj narzędzi z C. [narzędzi i/o]

Twoje wczytywanie jest mówiąc oględnie dziwne i skomplikowane. Przecież można w tym zadaniu w prosty sposób np tak:

for (int i = 0; i < 9; ++i)
     for (int j = 0; j < 9; ++j)
           cin >> sudokuArray[i][j];

Jeżeli używasz do testowania funkcji printSudoku(), to bardzo dobrze, ale jeżeli chcesz pomocy i pokazujesz swój kod, to “odchódź” go maksymalnie. Oszczędzisz w ten sposób chcącym pomóc kawałek nocy i łatwiej znajdziesz chętnych do pomocy. Ja na razie wymiękam. Jeżeli twój kod schudnie to może wtedy :wink: