•DITzoneC
|
|
« : Aprilie 24, 2007, 07:38:24 » |
|
Aici puteţi discuta despre problema Triunghi2.
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #1 : Mai 26, 2007, 21:57:12 » |
|
Ar putea sa-mi spuna cineva ce este gresit la functia asta de determinare a ariei? int arie(int x1,int y1, int x2, int y2, int x3, int y3) { int area; area=(x3-x1)*(y2-y1)-(x2-x1)*(y3-y1); return abs(area/2); }
Iau doar 70 de puncte, cu WA pe celelalte...Am testele oficiale, insa e destul de dificil de debug. Eu, pt a verifica daca un punct este in interiorul unui triunghi fac asa: *fie ABC triunghiul, iar M, punctul al carui pozitie trebuie verificata. *calculez aria lui ABC, lui ABM, lui ACM, lui BCM, si verific daca A(ABM)+A(BCM)+A(ACM)==A(ABC). Daca are loc conditia asta, atunci inseamna ca se afla in interior. Banuiesc k greseala este la functia de determinare a ariei...
|
|
|
Memorat
|
|
|
|
•pauldb
|
|
« Răspunde #2 : Mai 26, 2007, 22:11:05 » |
|
E buna formula.
|
|
|
Memorat
|
Am zis
|
|
|
•DITzoneC
|
|
« Răspunde #3 : Mai 27, 2007, 11:33:41 » |
|
Ai grija ca tu acolo trunchezi aria( din x.5 tu obtii x). Poti pur si simplu sa nu mai imparti la 2 si sa verifici asa sumele alea.
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #4 : Mai 27, 2007, 14:17:25 » |
|
Incercasem si fara impartire si tot nu`mi iese. Cat va da pentru:
Coordonatele ABC: 98 -87 -133 45 116 193
Coordonatele M: 31 80
Ma intereseaza care este aria triunghiului, si a celor trei triunghiuri formate de laturile ABC cu punctul M. LE: Am renuntat la "abs" si imi da la o arie "-1". Am pus cu "abs" si imi da 0. De ce? LE2: Am facut niste modificari, obtinand un program care nu-mi dadea bine deloc pe testele mele...Am trimis si....surpriza: 100 de puncte E o porcarie Borland-ul..ma las de el. LE3: Gata! Mi-am pus rhide....Alta viatza!...
|
|
« Ultima modificare: Iunie 01, 2007, 22:39:50 de către Marcu Florian »
|
Memorat
|
|
|
|
•Robytzza
|
|
« Răspunde #5 : Iunie 13, 2007, 13:29:32 » |
|
datzimi si mie ceva idei ,la al doilea punct (sa verific daca e vre un taran care ii cuprinde pe ceilaltzi ) ca nu prea imi da
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #6 : Iunie 13, 2007, 13:47:36 » |
|
Pai in primul rand, daca exista un asemenea tzaran, asta inseamna ca e posesorul parcelei cu aria cea mai mare! Avand coordonatele triunghiului de arie maxima, este destul de usor sa verifici pt fiecare punct al fiecarui triunghi daca este in interiorul triunghiului de arie maxima! Deci, sa presupunem ca triunghiul de arie maxima este ABC. Pentru toate celelalte triunghiuri de forma DEF, verifici dak D, E, respectiv F sunt in interiorul lui ABC. Este de ajuns k acest lucru sa fie fals o singura data si te poti opri. Succes!
|
|
|
Memorat
|
|
|
|
•Robytzza
|
|
« Răspunde #7 : Iunie 13, 2007, 15:08:40 » |
|
oky o sa incerc asa ms mult
|
|
|
Memorat
|
|
|
|
•vanila_CPP
Strain
Karma: -55
Deconectat
Mesaje: 14
|
|
« Răspunde #8 : Februarie 27, 2008, 02:33:33 » |
|
eu iau 100 pe testele de la ONI si totusi sursa mea continua sa ia 20 in arhiva e vreo regula de afisare?(ceva cu spatii intre numere sau chestii de genu)??
|
|
|
Memorat
|
|
|
|
•toni2007
|
|
« Răspunde #9 : Februarie 27, 2008, 11:19:56 » |
|
poate e din cauza ca afli gresit aria... si eu la inceput luam 65-70 de puncte din cauza ca faceam functia de aflare a ariei double... dupaia am facut-o int si am impartit la 2 la sfarsit (la afisare)si am luat 100... cred ca e un bug al c-ului (e ciudat dar nu imi aproxima corect x/2)... nuj incearca asa...
|
|
|
Memorat
|
|
|
|
•vanila_CPP
Strain
Karma: -55
Deconectat
Mesaje: 14
|
|
« Răspunde #10 : Februarie 27, 2008, 20:43:12 » |
|
eu calculam aria cu heron. nu stiu de ce dar busea. acum am calculat cu determinanti si merge
|
|
|
Memorat
|
|
|
|
•astronomy
|
|
« Răspunde #11 : Februarie 27, 2008, 21:23:22 » |
|
Apar erori de precizie daca faci cu formula lui heron.
|
|
|
Memorat
|
|
|
|
•Mishu91
|
|
« Răspunde #12 : Martie 10, 2008, 19:58:31 » |
|
int arie(int x1,int y1, int x2, int y2, int x3, int y3) { int area; area=(x3-x1)*(y2-y1)-(x2-x1)*(y3-y1); return abs(area/2); }
Exista vreo demonstratie a formulei, pentru ca nu ma prea prind
|
|
« Ultima modificare: Martie 10, 2008, 20:50:28 de către Andrei Misarca »
|
Memorat
|
|
|
|
•toni2007
|
|
« Răspunde #13 : Martie 10, 2008, 20:23:23 » |
|
da vezi ca tu nu faci bine faci functia int si cand returnezi area/2 iti face parte intreaga si pentru arie 13.5 de exemplu tie iti da area=27 si tu returnezi 26... daca vrei pui functia double sau returnezi fara impartirea la 2. si eu din cate stiu aria se facea cu o chestie care am uitat cum se numeste ceva gen o chestie pentru |a b c | | x1 y1 1 | |d e f | = | x2 y2 1 | |g h i | | x3 y3 1 | care e aei + dhc + bfg - ceg - dbi - hfa deci x1y2 + x2y3 + x3y1 - x3y2 - x2y1 - x1y3 de unde formula (dai factor comun) citeste mai multe aici http://www.softsurfer.com/Archive/algorithm_0101/algorithm_0101.htm
|
|
« Ultima modificare: Martie 10, 2008, 22:27:47 de către Pripoae Teodor Anton »
|
Memorat
|
|
|
|
•Mishu91
|
|
« Răspunde #14 : Martie 10, 2008, 20:53:51 » |
|
Mersi fain... kiar tare formula adik fata de formula lu Heron la care calculezi de mori si tot nu da bine asta kiar super misto
|
|
|
Memorat
|
|
|
|
•devilkind
|
|
« Răspunde #15 : Martie 10, 2008, 21:46:41 » |
|
si eu din cate stie aria se facea cu o chestie care am uitat cum se numeste
chestia aia se numeste determinant
|
|
|
Memorat
|
|
|
|
•toni2007
|
|
« Răspunde #16 : Martie 10, 2008, 22:28:09 » |
|
da ms uitasem
|
|
|
Memorat
|
|
|
|
•ciprianf
|
|
« Răspunde #17 : Aprilie 10, 2008, 20:23:06 » |
|
Editat de moderator: Nu postati rezolvari complete! Mai ales cand nu vi le cere nimeni!
|
|
« Ultima modificare: Aprilie 10, 2008, 23:19:20 de către Paul-Dan Baltescu »
|
Memorat
|
|
|
|
•gabitzish1
|
|
« Răspunde #18 : Aprilie 10, 2008, 20:27:56 » |
|
Puteai sa il lasi pe fiecare sa isi frece putin mintea si sa se prinda singur de rezolvare.
|
|
|
Memorat
|
|
|
|
•ciprianf
|
|
« Răspunde #19 : Aprilie 10, 2008, 20:33:30 » |
|
Nu am vrut decat sa ajut... ....oricum si metoda cu aria e destul de clar explicata ...daca e prea detaliat, rog un admin sa-mi stearga postul
|
|
« Ultima modificare: Aprilie 10, 2008, 20:48:11 de către Farcasanu Ciprian »
|
Memorat
|
|
|
|
•pauldb
|
|
« Răspunde #20 : Aprilie 10, 2008, 23:19:39 » |
|
Puteai sa il lasi pe fiecare sa isi frece putin mintea si sa se prinda singur de rezolvare. S-a rezolvat.
|
|
|
Memorat
|
Am zis
|
|
|
•tvlad
|
|
« Răspunde #21 : Aprilie 17, 2008, 15:54:05 » |
|
Intra lejer si brut la punctul 2
|
|
|
Memorat
|
|
|
|
•bacerandrei
Strain
Karma: 0
Deconectat
Mesaje: 10
|
|
« Răspunde #22 : Martie 31, 2009, 09:40:58 » |
|
Dezgrop si eu acest subiect...pentru ca m-am apucat sa ma perfectionez la capitolul geometrie la care nu stau prea bine Deci, la punctul 1 verific pentru fiecare triunghi daca punctul ce reprezinta fantana se afla in interiorul triunghiului, folosind determinanti. La punctul 2 aflu triunghiul de arie maxima, iar pentru fiecare triunghi verific apoi daca fiecare varf al lui se afla in interiorul triunghiului de arie maxima. Imi poate spune cineva, va rog, unde gresesc?
|
|
|
Memorat
|
|
|
|
•DraStiK
|
|
« Răspunde #23 : Martie 31, 2009, 09:42:47 » |
|
Dezgrop si eu acest subiect...pentru ca m-am apucat sa ma perfectionez la capitolul geometrie la care nu stau prea bine Deci, la punctul 1 verific pentru fiecare triunghi daca punctul ce reprezinta fantana se afla in interiorul triunghiului, folosind determinanti. La punctul 2 aflu triunghiul de arie maxima, iar pentru fiecare triunghi verific apoi daca fiecare varf al lui se afla in interiorul triunghiului de arie maxima. Imi poate spune cineva, va rog, unde gresesc? ideea de rezolvare este corecta, nefiind nimic gresit cel mai probabil gresesti la implementare vezi sa fii atent si la faptul ca aria se imparte la 2 (la calcului cu determinati) si in rest nu prea mai sunt cazuri speciale daca nu reusesti dami un pm
|
|
|
Memorat
|
|
|
|
•bacerandrei
Strain
Karma: 0
Deconectat
Mesaje: 10
|
|
« Răspunde #24 : Martie 31, 2009, 09:46:34 » |
|
Impart aria la 2, iar ca sa vad daca un punct e interior unui triunghi fac cei trei determinanti si verific daca au acelasi semn. Inca nu pot sa imi dau seama unde e gresita implementarea. Probabil nu sunt suficient de atent.
|
|
|
Memorat
|
|
|
|
|