97 / 110
Mar 2020

Nie zagłębiałem się za bardzo w kody, które wstawiłeś wyżej, właśnie tak jak napisałeś lepiej samodzielnie rozwiązać i w końcu mi się udało :slight_smile:
Generalnie jest wszystko to co było, program zrobiłem na 3 if-ach.
Ustaliłem, że nie ma sensu robić z else if, bo np. dla takiego wejścia:
AAABB
pokaże mi tylko
AAA (dla k>2, tak jak było wyżej)
ponieważ if się wykona.
A te if-y wyglądają tak: http://ideone.com/NXXhH63
W sumie dopiero pisząc to przeanalizowałem te twoje kody i mój jest bardzo podobny do twojego podpunktu a) :slight_smile:
Dzięki bardzo za pomoc :slight_smile:

3 months later

Cześć!
Mimo licznych analiz kodu, nie potrafię zrozumieć, dlaczego sędzia ciągle zwraca “błędną odpowiedź”

Proszę o wskazówkę!

#include<stdio.h>

int main (){

  int n;
  scanf("%d", &n);
  int i = 0;
  int j = 0;
  char tab[51][201];
  for(; i<n; i++)
    scanf("%201s", tab[i]);
  i = 0;
  int ccount = 1;
  char akt, nast;
  for(; i< n; i++){
    while(tab[i][j] != '\0'){
      akt = tab [i][j];
      nast = tab [i][j+1];
      if(j==0)
        printf("%c", tab[i][j]);
      if(akt == nast)
        ccount++;
      else{
        if(ccount == 1){
          printf("%c", nast);
        }
        else if( ccount == 2){
          printf("%c%c", akt, nast);
          ccount = 1;
        }
        else{
          printf("%d", ccount);
          ccount = 1;
          printf("%c", nast);
        }
      }
      j++;
    }
    printf("\n");
    j = 0;
  }

  return 0;
}

Pytanie powinno raczej brzmieć, a co robisz, gdy zmienna nast równa jest ‘\0’?, bo tak jest!
Po prostu drukujesz ją, a przy “zwykłym” testowaniu nie widzisz na ekranie, że drukujesz zero. Musiałbyś tetować, zapisując wynik do pliku, a potem oglądać go w jakimś edytorze hexs, lub używać debugera.

Ponieważ i tak twój kod jest niezbyt “ładny” więc po prostu, wszędzie gdzie drukujesz zmienną nast, dodaj wcześniej warunek:

jeżeli nast != '\0' drukuj nast

Kod będzie jeszcze mniej “ładny” i mniej czytelny, ale jeżeli zrobisz to dobrze dostaniesz AC.

4 months later

Witam, nie dawno zacząłem pisać algorytmy na spoju, i napisałem taki programik, sędzia wywala że błędna odpowiedź, te przykładowe testy dobrze pokazuje, jakieś moje także, nie wiem co tu jest nie tak.(przy zmianie wyświetlania danych poprzez dodanie całej linii do stringa, a na końcu wyświetlenie go, także spoj nie chce przyjąć).

https://ideone.com/tcKkGx4

Oto test, ktory pokazuje problem
Wejscie:
2
ZYXXX
AAABBBAAABBB
Wyjscie:
ZYX3
A3B3A3B3

Kiedys widzialem podobnie bledne rozwiazanie. Autor zadania zastawil chyba pulapke. :thinking:
:wink:

Nie ma tu żadnej pułapki, ja przynajmniej nie widzę. To raczej autor rozwiązania sam sobie podcina gałąź i kopie pod sobą dołki [swoim rozwiązaniem], w które potem sam wpada :wink:

Uczę się STL aktualnie i chciałem coś napisać przy pomocy niego. Ale warto najpierw się zastanowić czy napewno ta struktura haha. Dziękuję pięknie za pomoc

10 days later

Witam,
Przez ideone przechodzi moj kod Java. Problem wydaje się ze skannerem, ponieważ gdy tylko usuwam komentarze już kompilator go nie przepuszcza. W innych zadaniach tez miałem problem ze scannerem, jak robię w javie. Testy przykladowe przechodzi i w konsoli wyswietlaja mi się poprawne dane. Wie ktoś może gdzie jest błąd, może coś przeoczyłem, ale źle podszedłem do zadania?

Cześć,
Mam problem podobny do większości ludzi którzy tu piszą mianowicie nie jestem w stanie znaleźć przypadku dla którego mój kod nie działa, a sędzia go nie przyjmuje.

Jeżeli ktoś mógłby mi pomóc będę wdzięczny.

Na wyjsciu jest wypisywany dodatkowy (niepotrzebny, nieprawidlowy, niewidoczny) znak w każdej linii, ktory sędzia nie akceptuje.

1 year later

Witam, siłuję się(umysłowo) z tym zadaniem i rozumiem już że strumień drukuje znak końca linii, którego nie widać i moje pytanie brzmi jak się go pozbyć?
Link do mojego kodu: https://ideone.com/TWI5xl13

Czy może problem znajduje się gdzie indziej?

Najlepiej go nie wypisywać. (czy jest to znak końca linii to głowy nie dam bo nie sprawdzałem)

Raczej tak.
Proponowalbym przyglądać się ilości wykonań wewnętrznej pętli for. Przydałoby się ostatni znak każdego wyrazu traktowac inaczej.

To co wyslalem w linku to byla moja ostatnia wersja programu, co ciekawe wczesniej traktowalem ostatni element inaczej i na bierzaco drukowalem wynik tylko nie zauwazylem blednej petli for, teraz znalazlem ta starsza wersje zmienilem fora i dziala, dziekuje bardzo za pomoc :smiley:

26 days later

Witam, testowałem program na różnych przykładach oraz na ideone, ale sędzia cały czas pokazuje błąd kompilacji. Jest ktoś w stanie stwierdzić, gdzie znajduje się błąd ?

Kliknij w napis błąd kompilacji na stronie wyników zgłoszenia przy swoim zgłoszeniu a dostaniesz opis bledu

Dziękuję bardzo, okazało się, że użyłem funkcji to_string a kompilowałem w standardzie c++98, i dlatego nie przechodziło.

1 year later

sprawdz test
AAAA…AAA gdzie jest np 153 A