Pagini: 1 2 [3] 4   În jos
  Imprimă  
Ajutor Subiect: 011 Copaci  (Citit de 35359 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #50 : Martie 01, 2007, 13:40:10 »

da, foloseste printf scanf, merg mult mai repede decat cin cout!
Memorat
Tabara
Nu mai tace
*****

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #51 : Martie 01, 2007, 15:29:33 »

Nu ar trebui sa folosesti labs ?
Ca din cate vad eu, N merge pana la 100 000.( desi pe evaluatorul asta int = long int  Think )

Oricum ar mai fi varianta Cmmdc-ului binar, desi nu stiu daca te ajuta prea mult.

 Thumb up

[Later Edit] Nu cred ca e nevoie de Cmmdc binar.Cu scanf si printf ar trebui sa iti intre in timp. Thumb up
« Ultima modificare: Martie 01, 2007, 15:33:56 de către Tabara Mihai » Memorat
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #52 : Martie 01, 2007, 18:34:18 »

Nu stiam ca este abs si labs(abs pt long).
Am intrebat azi si la mate.Totusi profesoara mi-a aratat cum se calculeaza un determinant de ala.
Intrebarea mea este:ce reprezinta p1.x*p2.y - p2.x*p1.y,macar sa inteleg asa intuiti.De ce daca fac operatia aia pt oricare 2 puncte imi da aria.De ex pt un triunghi?
Ps:sper ca nu sunt insistent.
[LE]Am luat in sfarsit 100 puncte.Ciudat.Prima data alocam in heap si nu se incadra,si apoi am alocat normal si am luat maximum de puncte.Si am folosit stdio.h.
« Ultima modificare: Martie 01, 2007, 20:38:05 de către Iacob Eduard » Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #53 : Martie 30, 2007, 20:45:21 »

Am facut problema dar imi cade pe primele 4 teste. Conform a ceea ce s-a scris mai sus, cele care au puncte pe laturi. Intr-adevar,  nu conteaza ca modificari fac asupra numarului de puncte de pe latura, iau mereu testele 5-10, deci am dedus ca acolo e 0. Desi am verificat, vreau totusi sa va rog sa va aruncati o privire asupra functiei cmmdc sa-mi ziceti daca nu cumva nu mai stiu sa fac o functie asa elementara:
Cod:
long cmmdc( long x, long y )
{
     if( ( x == 0 ) ) return y;
     if( ( y == 0 ) ) return x;
     long r, a, b;
     if( x > y ) { a = x; b = y; }
     else { a = y; b = x; }
     r = a%b;
     while( r )
            {
                 a = b;
                 b = r;
                 r = a%b;                 
            }
     return b;
}
Va multumesc!

LE: Am verificat pe mai multe cazuri si pare sa fie ok, chiar si da numarul de puncte cerut. Aria o fac cu formula de pe TopCoder dar nu pricep de ce ia numai ultimele 6 teste, adica B -ul imi da bine dar A-ul ramane urias, chiar si pe exemplu (unde imi da gresit).... nu pricep.

LE: Pentru moderatori / propunatori : cred ca evaluatorul e busit rau. Daca va uitati pe sursa mea veti vedea ca afisez o variabila neintializata si iau 50p. Iar daca nu afisez "long long" iau zero, chiar daca valoarea variabilei intra in long. De exemplu daca trimit o sursa in care calculez I (pick's th) in long si afisez cu "%ld" iau zero, daca afisez cu "%lld" (o variabila long normal) iau iarasi 50.
« Ultima modificare: Martie 31, 2007, 18:56:54 de către Pandia Gheorghe » Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #54 : Aprilie 01, 2007, 21:33:21 »

E corect, dar te complici prea mult in calculul cmmdc. Poti face, de ex:
Cod:
int cmmdc( int a, int b ) {
int r;
while( b ) {
r = a % b;
a = b;
b = r;
}
return a;
}

Din cate tin minte, ca sa iei 100 trebuie lucrat cu intregi pe 64 de biti.
Memorat

"one of these days I'm going to cut you into little pieces..."
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #55 : Aprilie 01, 2007, 21:38:38 »

Io nu inteleg de ce iau pana si pe exemplu gresit... Adica ultimele 5 teste le iau scriind o variabila neintializata din stiva, care poate fi orice valoare si primele 4 le pic (cum de altfel credeam ca se va intampla cu toate avand in vedere ca nu merge exemplul)...

Am incercat de mai multe ori si sincer nu pricep...  sad
Memorat
floringh06
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #56 : Aprilie 02, 2007, 22:28:33 »

Am si eu o mica incurcatura la problema asta Smile... eu lucrez pe pascal si iau tle pe ult 3 teste... am scris sursa in cpp(unde nu ma prea descurc) si ia wa pe ult 6 teste...ideea de rezolvare e strict aceeasi...dar pe c am observat ca la teste mari depaseste tipul...
eu a declarat long long...e altceva mai tare sau ce ar trebui sa fac? mersi Very Happy
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #57 : Aprilie 03, 2007, 16:56:59 »

Imi spune si mie cineva va rog de ce urmatorul cod :
Cod:
    long long I, A, B;
    long x1, x2, y1, y2, c1, c2;
    A = 0;
    B = 0;
    for( i=2;i<n; i++ )   
         {
              x1 = p[i][0] - p[1][0];
              y1 = p[i][1] - p[1][1];
              x2 = p[i+1][0] - p[1][0];
              y2 = p[i+1][1] - p[1][1];
              A += x1*y2 - x2*y1;
         }
    if( A < 0 ) A = -A;
    A = A/2;
unde varfurile sunt memorate in p de la 1 la n, p[ i ][ 0 ] = x si p[ i ][ 1 ] = y nu da aria corecta  Cry ?

Iau numai ultimele 6 teste...
« Ultima modificare: Aprilie 03, 2007, 16:58:59 de către Pandia Gheorghe » Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #58 : Aprilie 03, 2007, 17:14:59 »

nu prea inteleg ce folosesti tu acolo ptr calculul ariei. Banuiesc ca imparti in triunghiuri, incearca formula cu determinanti ptr tot poligonul direct, fara sa mai imparti in triunghiuri.
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #59 : Aprilie 03, 2007, 17:19:02 »

Este intr-adevar o impartire in triunghiuri, luata de pe TopCoder. Sunt mai multe post-uri cu ea si la toata lumea pare sa functioneze (pana am dat io de ea  sad ) . Formula cu determinanti nu sare din timp ? O sa o implementez si pe aceea dar as vrea sa stiu ce e in neregula cu calculul de mai sus ca sa stiu daca ma pot baza pe formula respectiva sau nu.

Multumesc mult pt sfat oricum.  wink
Memorat
kino
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #60 : Aprilie 27, 2007, 16:05:47 »

a facut cineva problema asta in pascal?mie imi iese din timp pe ultimul test  Embarassed
Memorat
hulparuadrian
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #61 : Februarie 20, 2008, 14:20:46 »

am si eu o intrebare...pentru punctaj maxim calcularea ariei si a numarului de pct laticiare de pe laturi se face direct din citire ?sau se pot stoca coordonatele punctelor date in fisierul de intrare in doi vectori...k io am fakut direct din citire si iau doar 40... :)probabil k ma incurc la aflarea ariei si a nr de pcte??
« Ultima modificare: Februarie 20, 2008, 14:27:41 de către hulparu adrian » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #62 : Februarie 20, 2008, 14:59:27 »

Iei 40 de puncte din cauza ca nu lucrezi pe 64 de biti. Poti stoca datele linistit Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
hulparuadrian
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #63 : Februarie 20, 2008, 15:28:07 »

ms mult pt sfat...dah akum nu mai iau primele 4 teste...iau WA pe ele ... desi prima data am luat OK si WA pe ultimele 6...de ce?? Huh
« Ultima modificare: Februarie 20, 2008, 17:05:20 de către hulparu adrian » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #64 : Februarie 20, 2008, 17:45:47 »

Vad ca ai luat 100 pana la urma Smile. Care era problema cand luai 60?
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
hulparuadrian
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #65 : Februarie 20, 2008, 18:01:49 »

foloseam labs() pt a calcula modul din "long long"(determinarea ariei...) si am schimbat cu un banal "if..then"+fctia cmmdc am declarat-o pe int-uri...si akum merge...ms  Winner 1st place


"In fiecare zi inveti un lucru nou..."
Memorat
bogdanhm999
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #66 : Martie 06, 2008, 14:12:43 »

iau WA pe testul 9, am facut calcularea ariei si cmmdc cum s-a descris mai sus si tot asa. Stie cnv de la ce ar fi?
si folosesc operatii pe 64b.
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #67 : Martie 06, 2008, 18:24:27 »

Variabilele de tip long long se citesc cu %lld nu cu %ld.
Memorat
thestick
Client obisnuit
**

Karma: -6
Deconectat Deconectat

Mesaje: 68



Vezi Profilul WWW
« Răspunde #68 : Martie 12, 2008, 16:37:59 »

aceeasi sursa, punctaje diferite:
http://infoarena.ro/job_detail/155658 90p
http://infoarena.ro/job_detail/156174 100p
se pare ca formula mea gresita functioneaza. Smile
Memorat

stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #69 : Martie 12, 2008, 17:15:41 »

Si ce-i asa gresit la formula ta? Smile

P.S. Am mutat mesajul asta din "Feature request".
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #70 : Martie 12, 2008, 18:35:55 »

Sa tot faci Pick fara sa stii dinainte Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
thestick
Client obisnuit
**

Karma: -6
Deconectat Deconectat

Mesaje: 68



Vezi Profilul WWW
« Răspunde #71 : Martie 12, 2008, 20:15:46 »

deci iau poligonul , si daca gasesc o intoarcere la dreapta, sterg nodul din mijloc, si adun aria triunghiului eliminat la o variabila. si teoretic, imi ramane un soi de infasuratoare convexa in stiva, dupa aia calculez aria infasuratorii convexe, si o scad din prima variabila, si dupa aia calculez numarul de puncte laticeale de pe margine, si am toate elementele necesare pentru formula. stiu ca imi da gresit, pentru ca mi-am facut un caz nasol pe hartie (un fel de spirala) in care nu imi calculeaza bine, pentru ca se intersecteaza niste arii de triunghiuri. si totusi imi da...

si da, stiu ca exista o metoda mult mai usoara si mai scurta pentru a calcula aria unui poligon neconvex, dar e o sursa veche, scrisa inainte sa citesc despre geometrie computationala.
Memorat

mordred
Client obisnuit
**

Karma: -39
Deconectat Deconectat

Mesaje: 51



Vezi Profilul
« Răspunde #72 : Iulie 16, 2008, 17:28:02 »

Daca se poate uita cineva pe sursa mea, stau de cateva ore pe problema asta.  Brick wall
http://infoarena.ro/job_detail/199034
Nu ia primele 4 teste, si pe input-ul:
Cod:
4
1 1
2 1
2 2
1 2
da raspunsul -2.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #73 : Ianuarie 16, 2009, 13:42:27 »

Testul 9 nu corespunde limitelor problemei. O coordonata x depaseste 2 miliarde sau este mai mica de cat 0. Am  bagat un assert si crapa fix pe chestia aia. Cand am scos assert-ul a mers. Nu ca m-ar deranja asta, dar ar trebui modificat enuntul, daca nu se poate reface testul si baga o reevaluare.

Toni.
Memorat
Sorin_Ionut
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« Răspunde #74 : Martie 03, 2009, 12:25:05 »

Tot iau 40p iat la testele 5-10 WA si nu ma prind de ce  Brick wall
Se poate uita cineva pe sursa asta

Cod:


#include <stdio.h>

#define max 100011
#define IN "copaci.in"
#define OUT "copaci.out"

// I + B/2 - 1 = A
// A - arie
// I - interior
// B - laturi



Am sters codul pt a evita copy-paste-ul  Tongue

Multumesc anticipat !
« Ultima modificare: Martie 03, 2009, 16:27:31 de către BYSorynyos » Memorat
Pagini: 1 2 [3] 4   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines