• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spoj Współlinowość punktów

VPS Starter Arubacloud
0 głosów
287 wizyt
pytanie zadane 6 maja 2017 w SPOJ przez ChiriChiri Obywatel (1,260 p.)
http://pl.spoj.com/problems/JWSPLIN/ <---- link do zadania

"Kolejne współrzędne oddzielone są znakiem tabulacji." czy to coś zmienia? Program w codeblocksie działa dobrze, w ideone już nie, a spoju wyskakuje błędna odpowiedź. Współrzędne punktów wprowadziłam po prostu cinem, i może w tym leży błąd?
komentarz 6 maja 2017 przez niezalogowany
Pokaż kod może ;) Jedyne co mogę teraz zobaczyć to błąd SIGFPE. Czyli wykonanie nieprawidłowej operacji matematycznej. Prawdopodobnie gdzieś w kodzie występuje dzielenie przez zero. Jeżeli liczysz współliniowość np tworząc dwa równania liniowe (i porównując je) to musisz uwzględnić przypadek, gdy y nie jest funkcją x.
komentarz 6 maja 2017 przez ChiriChiri Obywatel (1,260 p.)

1 odpowiedź

+2 głosów
odpowiedź 6 maja 2017 przez niezalogowany
edycja 6 maja 2017
int a=(D-B)/(C-A);

Może się okazać sytuacja gdy C-A = 0. Wtedy nastąpi dzielenie przez zero. Po prostu if'em uwzględnij czy C-A != 0. Gdy nastąpi taka sytuacja rób wszystko tak jak robiłaś. W przeciwnym przypadku wystarczy sprawdzić te współrzędne x - bo gdy y nie jest f(x) to funkcja liniowa jest pionowa. Wtedy sprawdź czy C == E (czyli czy 3 punkt też jest na tej pionowej linii co pozostałe dwa) i według tego osądź :) 

komentarz 6 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
if(C-A!=0)
		{
		  int a=(D-B)/(C-A);
		  int b=B-a*A;
 
		  if (F==a*E+b) cout<<"TAK"<<endl;
	      else cout<<"NIE"<<endl;
	     }
 
		else if(C-A==0)
		{
	    	if ((A==C)&&(C==E)) cout<<"TAK";
	    }

Chyba nadal mam z tym problem :(

komentarz 6 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
A już , po prostu znowu endliny :D
Dziękuje bardzo za pomoc
komentarz 6 maja 2017 przez niezalogowany

Jeszcze tylko jednego else brakuje gdy C-A==0 ;)

        else
        {
            if (C==E) cout<<"TAK";
            else cout<<"NIE"; /* gdy nie sa na tej samej pionowej linii */
        }

A no tak jeszcze endline :D

komentarz 6 maja 2017 przez ChiriChiri Obywatel (1,260 p.)

Tak, w zadaniu go dodałam, i miałam tu dopisać też, ale zobaczyłam, że to wina endlinów , więc już to pominęłam w komentarzu laugh

Podobne pytania

0 głosów
1 odpowiedź 194 wizyt
0 głosów
1 odpowiedź 139 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez Przemek49 Obywatel (1,260 p.)
0 głosów
1 odpowiedź 252 wizyt
pytanie zadane 15 grudnia 2022 w SPOJ przez Pan_Blazej Nowicjusz (180 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...