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

Spoj Współlinowość punktów

Object Storage Arubacloud
0 głosów
289 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ź 195 wizyt
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez Przemek49 Obywatel (1,260 p.)
0 głosów
1 odpowiedź 264 wizyt
pytanie zadane 15 grudnia 2022 w SPOJ przez Pan_Blazej Nowicjusz (180 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...